跳到主要内容

主动人脸活体检测

SDK 在设备上运行三个随机挑战,再把最佳自拍发送给主动人脸活体检测 API,由其返回 HMAC-SHA256 签名的判定。每个完成的会话计费 1 IC。

调用​

import 'package:iapp_ekyc_sdk/iapp_ekyc_sdk.dart';

final client = IappEkycClient(apiKey: 'YOUR_API_KEY');

final liveness = await ActiveLivenessView.start(context, client: client);

if (liveness.verdict.passed) {
// 将 liveness.verdict + liveness.signature 转发给您的后端,
// 在那里验证 HMAC,然后继续进行注册。
}

安装:Flutter 与 Web 见入门指南,原生封装与相机权限见 iOS, Android & React Native。

结果​

结果包含服务器返回的 verdict 与 signature;设备上的结果仅用于界面提示。

只信任签名后的判定

被篡改的客户端可以伪造设备上的挑战结果。您的后端必须重新计算 HMAC-SHA256(secret, canonicalJSON(verdict)) 并与 signature 比较,然后才能信任 verdict.passed。参见签名验证示例。

会话如何运行
  • 面部锁定:画面中恰好一张正脸,足够大且居中,并在挑战开始前保持稳定。
  • 挑战:从眨眼、向左转、向右转、微笑中随机抽取三个不同的挑战。眨眼须先闭后睁,转头须达到至少 18° 偏航角并回到中间,微笑须保持。
  • 重新开始:面部离开画面、出现第二张人脸或更换了人,当前挑战会重新开始;多次重新开始或超时则会话失败。
  • 自拍:每一帧清晰、正面、睁眼的画面按清晰度与面部大小评分,最佳一帧发送给服务器。
  • 判定:服务器校验挑战记录,对自拍重新运行被动活体检测,并对判定签名。

完整的活体检测规范见 SDK 源代码。

© 2026 iApp Technology Co., Ltd.服务条款隐私政策系统状态sale@iapp.co.th