Liveness(生体認証セルフィー)
生体認証の有効性検証が組み込まれた生体認証セルフィー キャプチャ。SDK は SmartFrames を通じてユーザーを誘導し、生体認証的に有効なフレームが取得されると、画像を Base64 と JWT として返します。
このキャプチャ タイプは Liveness capability を使用します。Liveness の動作に関する概念的な概要については、Liveness capability ページを参照してください。
SDK はキャプチャ セッション全体を管理します:
- SmartFrame オーバーレイでカメラを開きます。
- ユーザーが顔をフレーム内に合わせるよう誘導します。
- Liveness を検証 — ユーザーが物理的に存在する場合にのみセッションが完了します。
successコールバックを通じてbase64(プレビュー)とencrypted(API 向け JWT)を含むオブジェクトを返します。
Web では SelfieCameraTypes を通じて 2 つのカメラ モードを提供します:
SelfieCameraTypes.NORMAL— 標準カメラ モード(手動キャプチャ)。SelfieCameraTypes.SMART— 自動キャプチャとシルエット ガイド付きのスマート カメラ モード。
SMART を使用する場合は、初期化時に setModelsPath でコンピュータ ビジョン モデルも読み込む必要があります。
ステップ 1 — callback オブジェクトを実装する
Web SDK は callback オブジェクトを使用します。このオブジェクトは open() に渡され、成功イベントとエラーイベントを処理します。両方のハンドラーは必須です:
| ハンドラー | 呼び出されるタイミング |
|---|---|
on.success(obj) | キャプチャが正常に完了した場合 — base64 と encrypted を含むオブジェクトを受け取ります |
on.error(error) | セッション中にエラーが発生した場合 — ErrorBio を受け取ります |
const callback = {
on: {
success: (obj) => {
console.log(obj.base64);
console.log(obj.encrypted);
},
error: (error) => {
console.error(error);
}
}
};
callback オブジェクトは必須です。success と error の両方のイベントをカバーする形で適切に実装されていない場合、SDK は例外を発生させます。この例外が処理されないと、ユーザーのコンソールに表示されます。
ステップ 2 — カメラをビルドし、セルフィー セッションを準備する
カメラ インスタンスをビルドし、UnicoConfig と希望の SelfieCameraTypes を渡して prepareSelfieCamera を呼び出します:
encrypted を生成してから API に送信するまでの間隔は 10 分 を超えてはなりません。
const unicoCamera = unicoCameraBuilder.build();
const config = new UnicoConfig()
.setHostname("<YOUR_HOSTNAME>")
.setHostKey("<YOUR_HOST_KEY>");
unicoCamera.prepareSelfieCamera(
config,
SelfieCameraTypes.SMART
).then(cameraOpener => {
cameraOpener.open(callback);
}).catch(error => {
console.error(error);
});
カメラの起動を最適化するため、prepareSelfieCamera() と open() の呼び出しを分離することができます — ユーザーがキャプチャ画面に移動する間、prepare ステップをウォーム状態に保ちます。
ステップ 3 — (任意)iFrame 内での使用
Web SDK は prepareSelfieCameraForIFrame() を通じて iFrame 内での Interactive Liveness の埋め込みをサポートしています:
unicoCamera.prepareSelfieCameraForIFrame(
config,
SelfieCameraTypes.SMART
).then(cameraOpener => {
cameraOpener.open(callback);
}).catch(error => {
console.error(error);
});
必要なパーミッションを持つ <iframe> 要素を実装します:
<iframe allow="fullscreen;camera;geolocation" allowFullScreen src="your_app_url"></iframe>
prepareSelfieCameraForIFrame() は iFrame 内でのみ動作します — iFrame の外部で呼び出すとセッションが失敗します。同様に、iFrame 内で prepareSelfieCamera() を使用した場合もエラー 73406 が発生します。
キャプチャを実行するには、SDK が自動的にリサイズできるようにページがフルスクリーン モードである必要があります。Apple は特に iPhone(iPad は許可)でフルスクリーン API の使用を制限しています。iPhone でのキャプチャには、iFrame の位置を手動で設定してください。
iFrameコンテキストでは2つのエラーコードが発生する可能性があります:73406はprepareSelfieCamera()がiFrame内で呼び出されたためカメラの初期化がブロックされた場合に発生します — 代わりにprepareSelfieCameraForIFrame()を使用してください;73724はカメラセッションがiFrame内で開始されたため、アクティブセッションがキャンセルされた場合に発生します。完全なカタログについてはエラー処理を参照してください。
結果のハンドリング全体については、結果の受け取り を参照してください。