본문으로 건너뛰기

init()

init()은 브라우저에서 MonitorDog SDK 인스턴스를 생성하고, SDK가 사용할 기본 설정을 등록하는 일회성 함수입니다.

이 함수는 로그인 및 탐지를 바로 실행하지 않습니다. 귀사의 웹사이트에서 사용자가 로그인한 뒤 login()을 호출할 수 있도록 SDK 인스턴스를 준비합니다.

static init(options: MonitorDogDetectorOptions): Promise<MonitorDogDetector>

함수 인자 설명

init() 함수의 주요 파라미터는 다음과 같습니다.

  • apiBaseUrl (필수): MonitorDog API 서버 주소입니다.
  • sessionTokenProvider (필수): login() 시점에 SDK access token을 가져오기 위해 호출되는 콜백입니다. 이 콜백은 귀사의 고객 서버 access token endpoint를 호출해야 하며, 브라우저에서 MonitorDog partner API key를 직접 사용하면 안 됩니다.
  • onDetect (필수): 매 프레임 탐지 결과를 받는 콜백입니다. 휴대폰 감지 여부에 따라 귀사의 화면 차단/해제 로직을 실행할 수 있습니다.
  • onError: SDK 실행 중 발생한 에러 콜백입니다.
  • video: SDK가 사용할 video element입니다. 생략하면 SDK가 내부 video element를 생성합니다.
  • constraints: 웹캠 제약 조건입니다. 카메라 선택, 해상도, 전면/후면 카메라 방향 등을 지정할 때 사용합니다.
  • runInBackground: 탭이 숨겨졌을 때도 탐지를 계속할지 여부입니다.
  • overlay: SDK 기본 overlay 사용 여부입니다.

init()은 내부적으로 detector 인스턴스를 만들고, 이후 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);
},
});

목차

이 콘텐츠 공유