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

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

生体認証による活体検証を組み込んだセルフィーキャプチャ。SDK は SmartFrames を通じて生体的に有効なフレームが取得されるまでユーザーをガイドし、画像を Base64 + JWT として返します。

機能

このキャプチャタイプは Liveness 機能を使用します。Liveness の仕組みの概念的な概要については、Liveness 機能ページを参照してください。

How it works

プラグインは基盤となるネイティブ SDK に処理を委譲します:

  1. プラグインは SmartFrame オーバーレイとともにカメラ(Android または iOS)を開きます。
  2. ネイティブ SDK はユーザーが顔をフレーム内に配置するようガイドします。
  3. 活体を検証します — セッションはユーザーが物理的に存在している場合にのみ完了します。
  4. プラットフォームチャンネルを通じて base64encrypted(JWT)を含む ResultCamera オブジェクトを返します。
Camera mode (smart capture)

SDK はデフォルトでインテリジェントフレーミング自動キャプチャが有効になっています。ビルダーでカメラモードを次のように設定します:

UnicoCheckCameraOpener _opener = new UnicoCheck(this)
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
ヒント

上記のメソッドの false/true の値はキャプチャエクスペリエンスを変更しません。SDK の内部ロジックにのみ使用されます。

Starting a liveness capture
ステップ 1UnicoListener を実装する

UnicoListener は SDK ライフサイクルコールバックを処理します。4 つの必須メソッドを実装してください:

メソッド呼び出されるタイミング
onErrorUnico(error)SDK 操作中にエラーが発生した場合
onUserClosedCameraManually()ユーザーが手動でカメラを閉じた場合
onSystemClosedCameraTimeoutSession()40 秒のセッション制限に達した場合
onSystemChangedTypeCameraTimeoutFaceInference()13 秒間顔が検出されなかった場合 — 手動キャプチャに切り替わる
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;

@override
void onErrorUnico(UnicoError error) {}

@override
void onUserClosedCameraManually() {}

@override
void onSystemClosedCameraTimeoutSession() {}

@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
必須リスナーメソッド

上記 4 つのリスナーメソッドはすべてプロジェクト内に作成する必要があります(ロジックがなくても同様です)。作成しない場合、プロジェクトは正常にコンパイルされません。

ステップ 2UnicoSelfie にセルフィーリスナーを実装する

セルフィーのコールバックをステートクラスに追加します:

メソッド説明
onSuccessSelfie(ResultCamera result)キャプチャ成功 — base64(プレビュー)と encrypted(API 用 JWT)を含む ResultCamera を返す
onErrorSelfie(UnicoError error)キャプチャ失敗 — コードと説明を含む UnicoError を返す
トークンの有効期限

encrypted を生成してから API に送信するまでの間隔は 10 分 を超えてはなりません。

@override
void onSuccessSelfie(ResultCamera result) { }

@override
void onErrorSelfie(UnicoError error) { }
ステップ 3openCameraSelfie を呼び出す

openCameraSelfie メソッドはカメラを開きます。UnicoSelfie リスナーの実装と、前のステップで生成された認証情報を含む JSON ファイルを引数として受け取ります:

_opener.openCameraSelfie(
jsonFileName: androidJsonFileName,
listener: this,
);
Monitoring data collection

openCameraSelfie メソッドは、ユーザーセッションとフローの識別を支援するために UnicoCheckPrepareInfo 経由でメタデータを受け取るオーバーロードを提供します:

  • externalUserId(String、必須)— システム内のユーザー識別子。送信前に SHA-256 を使用して自動的にハッシュ化されます。
  • useCase(String、任意)— 現在実行中のコンテキストまたはフローの識別子。平文で送信されます。
_opener.openCameraSelfie(
jsonFileName: androidJsonFileName,
listener: this,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

結果処理の詳細については、結果を受け取る を参照してください。