Liveness(生体認証セルフィー)
組み込みの生体認証検証による生体認証セルフィーキャプチャ。SDK は SmartFrames を通じて生体認証的に有効なフレームが取得されるまでユーザーをガイドし、画像を Base64 と JWT として返します。
Capability
このキャプチャタイプは Liveness capability を使用します。Liveness の仕組みの概念的な概要については、Liveness capability ページを参照してください。
仕組み
SDK はキャプチャセッション全体を管理します:
- SmartFrame オーバーレイでカメラを開きます。
- ユーザーがフレーム内に顔を位置合わせするようにガイドします。
- Liveness を検証します — セッションはユーザーが実際に存在する場合にのみ完了します。
base64とencrypted(JWT)を含むSelfieResult(別名ResultCamera)オブジェクトを返します。
カメラモード(スマートキャプチャ)
SDK はデフォルトでインテリジェントフレーミングと自動キャプチャが有効になっています。以下のようにビルダーでカメラモードを設定します:
- Swift
- Objective-C
unicoCheck.setSmartFrame(true)
unicoCheck.setAutoCapture(true)
[unicoCheck setSmartFrame:true];
[unicoCheck setAutoCapture:true];
Liveness キャプチャの開始
ステップ 1 — AcessoBioManagerDelegate を実装する
AcessoBioManagerDelegate は SDK のライフサイクルコールバックを処理します。4 つの必須メソッドを実装してください:
| メソッド | 呼び出しタイミング |
|---|---|
onErrorAcessoBioManager(error) | SDK 操作中にエラーが発生した場合 |
onUserClosedCameraManually() | ユーザーが手動でカメラを閉じた場合 |
onSystemClosedCameraTimeoutSession() | 40 秒のセッション制限に達した場合 |
onSystemChangedTypeCameraTimeoutFaceInference() | 13 秒間顔が検出されなかった場合 — 手動キャプチャに切り替わります |
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate {
var unicoCheck: AcessoBioManager!
override func viewDidLoad() {
super.viewDidLoad()
unicoCheck = AcessoBioManager(viewController: self)
}
func onErrorAcessoBioManager(_ error: ErrorBio!) { }
func onUserClosedCameraManually() { }
func onSystemClosedCameraTimeoutSession() { }
func onSystemChangedTypeCameraTimeoutFaceInference() { }
}
@implementation ViewController: UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];
}
- (void)onErrorAcessoBioManager:(ErrorBio *)error { }
- (void)onSystemChangedTypeCameraTimeoutFaceInference { }
- (void)onSystemClosedCameraTimeoutSession { }
- (void)onUserClosedCameraManually { }
@end
必須デリゲートメソッド
上記の 4 つのデリゲートメソッドは、ロジックがなくてもプロジェクトに作成する必要があります。作成しない場合、プロジェクトは正常にコンパイルされません。
ステップ 2 — SelfieCameraDelegate と AcessoBioSelfieDelegate を実装する
これ らのデリゲートはセルフィーキャプチャの結果コールバックを処理します:
| メソッド | 説明 |
|---|---|
onSuccessSelfie(result) | キャプチャ成功 — base64(プレビュー)と encrypted(API 用 JWT)を含む SelfieResult を返します |
onErrorSelfie(errorBio) | キャプチャ失敗 — コードと説明を含む ErrorBio を返します |
トークンの有効期限
encrypted の生成から API への送信までの間隔は 10 分 を超えてはなりません。
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate {
func onSuccessSelfie(_ result: SelfieResult!) { }
func onErrorSelfie(_ errorBio: ErrorBio!) { }
}
// .h
@interface ViewController: UIViewController <AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate> {
AcessoBioManager *unicoCheck;
}
// .m
- (void)onSuccessSelfie:(SelfieResult *)result {
NSLog(@"%@", result.base64);
}
- (void)onErrorSelfie:(ErrorBio *)errorBio { }
ステップ 3 — prepareSelfieCamera と open を呼び 出す
SDK 設定を渡して prepareSelfieCamera を呼び出します。カメラの準備が完了すると、onCameraReady イベントが AcessoBioCameraOpenerDelegate とともにトリガーされます — open() メソッドを通じてカメラを開きます:
onCameraReady(cameraOpener)— カメラの準備完了;open(self)を呼び出します。onCameraFailed(message)— カメラの準備に失敗しました(ErrorPrepareはErrorBioの拡張です)。
- Swift
- Objective-C
@IBAction func openCamera(_ sender: Any) {
unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
}
func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
cameraOpener.open(self)
}
func onCameraFailed(_ message: ErrorPrepare!) { }
- (IBAction)openCamera:(UIButton *)sender {
[[unicoCheck build] prepareSelfieCamera:self config:[YourUnicoConfigClass new]];
}
- (void)onCameraReady:(id)cameraOpener {
[cameraOpener open:self];
}
- (void)onCameraFailed:(ErrorPrepare *)message { }
モニタリングデータ収集の詳細については、モニタリングデータ収集を参照してください。
結果の完全な処理については、結果の受信を参照してください。