メインコンテンツへスキップ

Liveness(生体認証セルフィー)

生体認証の有効性検証が組み込まれた生体認証セルフィー キャプチャ。SDK は SmartFrames を通じてユーザーを誘導し、生体認証的に有効なフレームが取得されると、画像を Base64 と JWT として返します。

Capability

このキャプチャ タイプは Liveness capability を使用します。Liveness の動作に関する概念的な概要については、Liveness capability ページを参照してください。

仕組み

SDK はキャプチャ セッション全体を管理します:

  1. SmartFrame オーバーレイでカメラを開きます。
  2. ユーザーが顔をフレーム内に合わせるよう誘導します。
  3. Liveness を検証 — ユーザーが物理的に存在する場合にのみセッションが完了します。
  4. success コールバックを通じて base64(プレビュー)と encrypted(API 向け JWT)を含むオブジェクトを返します。
カメラ モード(smart vs normal)

Web では SelfieCameraTypes を通じて 2 つのカメラ モードを提供します:

  • SelfieCameraTypes.NORMAL — 標準カメラ モード(手動キャプチャ)。
  • SelfieCameraTypes.SMART — 自動キャプチャとシルエット ガイド付きのスマート カメラ モード。

SMART を使用する場合は、初期化時に setModelsPath でコンピュータ ビジョン モデルも読み込む必要があります。

Liveness キャプチャの開始
ステップ 1callback オブジェクトを実装する

Web SDK は callback オブジェクトを使用します。このオブジェクトは open() に渡され、成功イベントとエラーイベントを処理します。両方のハンドラーは必須です:

ハンドラー呼び出されるタイミング
on.success(obj)キャプチャが正常に完了した場合 — base64encrypted を含むオブジェクトを受け取ります
on.error(error)セッション中にエラーが発生した場合 — ErrorBio を受け取ります
const callback = {
on: {
success: (obj) => {
console.log(obj.base64);
console.log(obj.encrypted);
},
error: (error) => {
console.error(error);
}
}
};
必須の callback

callback オブジェクトは必須です。successerror の両方のイベントをカバーする形で適切に実装されていない場合、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 外で使用するとエラー 73724 が発生します。同様に、iFrame 内で prepareSelfieCamera() を使用した場合もエラー 73724 が発生します。

iPhone でのフルスクリーン

キャプチャを実行するには、SDK が自動的にリサイズできるようにページがフルスクリーン モードである必要があります。Apple は特に iPhone(iPad は許可)でフルスクリーン API の使用を制限しています。iPhone でのキャプチャには、iFrame の位置を手動で設定してください。

結果のハンドリング全体については、結果の受け取り を参照してください。