更新记录
1.0.0(2026-09-29)
下载此版本
- 首次发布
- 支持动作活体检测(张嘴、眨眼、左右转头、点头)
- 支持
liveness(纯活体)与 identity(活体 + 人证比对)两种模式
- 人证比对接口由使用者通过
verifyApi 传入,约定式契约 { success: true|false },零硬编码
- 无论何种模式均回传抓拍人像 base64,宿主可自行接入自有接口
- 支持 App(内置本地 H5)与 H5(需自备已部署地址)
平台兼容性
uni-app(3.8.4)
| Vue2 |
Vue2插件版本 |
Vue3 |
Vue3插件版本 |
Chrome |
Chrome插件版本 |
Safari |
Safari插件版本 |
app-vue |
app-vue插件版本 |
app-nvue |
Android |
Android插件版本 |
iOS |
iOS插件版本 |
鸿蒙 |
| √ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
- |
√ |
1.0.0 |
√ |
1.0.0 |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x(3.8.4)
| Chrome |
Chrome插件版本 |
Safari |
Safari插件版本 |
Android |
Android插件版本 |
iOS |
iOS插件版本 |
鸿蒙 |
微信小程序 |
| √ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
- |
- |
Rui-faceVerify 人脸活体检测与人证核身
基于 face-api.js 的动作活体检测 + 可配置人证核身组件。检测逻辑运行在内嵌 H5 中,通过 web-view 承载,不依赖任何原生 SDK,App 与 H5 均可使用。
- 零硬编码:插件不内置任何人证比对接口,接口地址与判定完全由使用者决定
- 两种模式:
liveness 纯活体;identity 活体 + 人证比对
- 结果可选:无论哪种模式都会返回抓拍人像 base64,宿主可自行调用自己的接口
支持的平台
| 平台 |
支持 |
说明 |
| App (app-vue) |
✅ |
加载插件内置本地 H5 |
| H5 |
✅ |
web-view 为 iframe,需自备已部署的 H5 地址 |
| 小程序 |
❌ |
小程序 web-view 仅支持网络地址,且本地算法资源受限 |
快速开始
<template>
<Rui-faceVerify
mode="identity"
:actions="[1, 2]"
name="张三"
idcard="110101199001011234"
verify-api="https://your-domain.com/verify"
@success="onSuccess"
@fail="onFail"
@action="onAction"
/>
</template>
<script>
export default {
methods: {
onSuccess(e) {
console.log('认证通过', e.picture)
},
onFail(e) {
console.log('认证失败', e.state)
},
onAction(e) {
// 活体动作切换,可用于自定义语音/文案
console.log('当前动作', e.description)
}
}
}
</script>
H5 平台需额外传入已部署的 H5 地址:
<Rui-faceVerify h5-base-url="https://your-domain.com/livedetect/" ... />
Props
| 属性 |
类型 |
默认值 |
说明 |
visible |
Boolean |
true |
是否展示。App 端销毁 web-view 时才会收到最后一条消息 |
mode |
String |
identity |
liveness 纯活体;identity 活体+人证比对 |
actions |
Array / String |
[1, 2] |
活体动作序列。1张嘴 2眨眼 3左转头 4右转头 5点头 |
name |
String |
'' |
姓名,identity 模式必填 |
idcard |
String |
'' |
身份证号,identity 模式必填 |
verifyApi |
String |
'' |
人证比对接口地址,identity 模式必填 |
token |
String |
'' |
比对接口鉴权 token,请求时以 Authorization: Bearer <token> 头携带 |
test |
Boolean |
false |
测试模式,不真实调用接口,走本地模拟 |
h5BaseUrl |
String |
'' |
H5 平台必填,已部署的 H5 地址 |
Events
| 事件 |
参数 |
说明 |
result |
{ type, state, picture, count, source } |
任何最终结果都会触发 |
success |
同上 |
state === 'SUCCESS' |
fail |
同上 |
state !== 'SUCCESS' |
action |
{ code, description, prompt } |
活体动作切换 |
error |
web-view 加载失败事件 |
加载异常 |
结果字段说明:
| 字段 |
说明 |
type |
当前模式 liveness / identity |
state |
SUCCESS 通过;其他为失败(如 TIMEOUT、FAIL) |
picture |
抓拍人像,data:image/png;base64,... |
count |
本次会话内的结果序号 |
source |
回传原始入参,便于业务透传 |
人证比对接口约定
identity 模式会在活体通过后,向你配置的 verifyApi 发起 POST(application/json) 请求:
{
"realName": "张三",
"idCard": "110101199001011234",
"faceImage": "data:image/png;base64,..."
}
接口需返回:
{ "success": true }
约定规则:
- HTTP 200 且
success 为布尔值 才算有效响应
success: true → 认证通过;success: false → 认证失败
- 非 200、超时、网络异常,或缺少布尔
success 字段,一律视为失败,并在结果页给出明确提示
注意事项
- 跨域:H5 平台由浏览器直接发起请求,你的比对接口必须放行 CORS(含 OPTIONS 预检);若使用
token,还需允许 Authorization、Content-Type 请求头。App 端无此限制。
- App 端消息时机:app-vue 的
@message 在「页面后退、web-view 组件销毁、分享」时触发。若需拿到结果后立即跳转,请在收到结果后将 visible 置为 false。
faceImage 格式:为 data:image/png;base64, 前缀的完整 data URL,如你的后端需要纯 base64,请自行截取 / 逗号后的内容。
- 人脸数据合规:抓拍人像属敏感个人信息,请务必在自身隐私政策中说明用途与留存策略。
目录结构
uni_modules/Rui-faceVerify
├── components/Rui-faceVerify/Rui-faceVerify.vue # 组件入口
├── hybrid/html/livedetect/ # 内置 H5 构建产物(含模型)
├── package.json
├── readme.md
└── changelog.md
更新日志
见 changelog.md