init()
init()は、ブラウザでMonitorDog SDK instanceを作成し、SDKが使用する基本設定を登録する一度だけ呼び出す関数です。
この関数はログインや検知をすぐに実行しません。貴社Webサイトでユーザーがログインした後にlogin()を呼び出せるようにSDK instanceを準備します。
static init(options: MonitorDogDetectorOptions): Promise<MonitorDogDetector>
関数引数の説明
init()関数の主なパラメーターは次のとおりです。
apiBaseUrl(必須): MonitorDog APIサーバーURLです。sessionTokenProvider(必須):login()時点でSDK access tokenを取得するために呼び出されるcallbackです。このcallbackは貴社の顧客サーバーaccess token endpointを呼び出す必要があり、ブラウザでMonitorDog partner API keyを直接使用してはいけません。onDetect(必須): 各frameの検知結果を受け取るcallbackです。携帯電話の検知有無に応じて、貴社の画面ブロック/解除ロジックを実行できます。onError: SDK実行中に発生したエラーcallbackです。video: SDKが使用するvideo elementです。省略するとSDKが内部video elementを作成します。constraints: Webカメラ制約です。カメラ選択、解像度、前面/背面カメラの向きなどを指定するときに使用します。runInBackground: タブが非表示になったときも検知を継続するかどうかです。overlay: SDK default overlayを使用するかどうかです。
init()は内部的にdetector instanceを作成し、後でgetDetector()からアクセスできるようにsingletonも登録します。
実装例
import { MonitorDogDetector } from "@monitordog/detector";
async function getMonitorDogAccessToken({ email }: { email: string }) {
const response = await fetch("/api/monitordog/access-token", {
method: "POST",
headers: {
"content-type": "application/json",
},
credentials: "include",
body: JSON.stringify({ email }),
});
if (!response.ok) {
throw new Error("Failed to create MonitorDog access token");
}
return response.json();
}
const detector = await MonitorDogDetector.init({
apiBaseUrl: "https://api.monitor.dog/v1",
sessionTokenProvider: getMonitorDogAccessToken,
onDetect: (result) => {
if (result.phoneDetected) {
blockScreen();
return;
}
unblockScreen();
},
onError: (error) => {
console.error("MonitorDog SDK error", error);
},
});