更新记录

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 字段,一律视为失败,并在结果页给出明确提示

注意事项

  1. 跨域:H5 平台由浏览器直接发起请求,你的比对接口必须放行 CORS(含 OPTIONS 预检);若使用 token,还需允许 Authorization、Content-Type 请求头。App 端无此限制。
  2. App 端消息时机:app-vue 的 @message 在「页面后退、web-view 组件销毁、分享」时触发。若需拿到结果后立即跳转,请在收到结果后将 visible 置为 false。
  3. faceImage 格式:为 data:image/png;base64, 前缀的完整 data URL,如你的后端需要纯 base64,请自行截取 / 逗号后的内容。
  4. 人脸数据合规:抓拍人像属敏感个人信息,请务必在自身隐私政策中说明用途与留存策略。

目录结构

uni_modules/Rui-faceVerify
├── components/Rui-faceVerify/Rui-faceVerify.vue      # 组件入口
├── hybrid/html/livedetect/                            # 内置 H5 构建产物(含模型)
├── package.json
├── readme.md
└── changelog.md

更新日志

见 changelog.md

隐私、权限声明

1. 本插件需要申请的系统权限列表:

摄像头权限(相机):用于调起摄像头采集用户人脸画面,进行动作活体检测与人脸抓拍。无其他系统权限申请。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

1. 采集数据:用户的姓名、身份证号(由接入方通过组件参数传入),以及通过摄像头抓拍的人脸图像(base64)。 2. 人脸检测与活体识别基于开源库 face-api.js 在设备端本地完成,模型文件随插件内置、本地加载,人脸画面不会因此发送至任何第三方。 3. 数据发送地址:本插件不内置任何服务器地址。仅在“人证核身(identity)”模式下,将姓名、身份证号、人脸抓拍图像以 HTTPS POST 方式发送至接入方自行配置的人证比对接口(verifyApi);如接入方配置了鉴权 token,会在请求头携带 Authorization。“纯活体(liveness)”模式下不向任何服务器发送数据。 4. 数据用途:仅用于动作活体检测、人证一致性核身,以及将检测结果和抓拍人像回传给接入方应用。数据的留存、处理与合规义务由接入方依据其隐私政策承担。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无。本插件不包含任何广告,不展示推广内容。

许可协议

MIT协议

暂无用户评论。