LightSDK.native.verifyOpeation

功能描述

开始本地授权认证

支持格式

JSON

请求参数:

字段 类型及范围 默认值 必填 说明
requestAuthModes Array.<string> 是 请求使用的可接受的生物认证方式
authContent string “” 否 验证描述,即识别过程中显示在界面上的对话框提示内容(仅当认证方式为指纹或人脸时生效)
verifyType
【已废弃(请使用requestAuthModes参数)】
string 认证方式
GLOpeationType string ‘verify’ 否 手势识别操作类型(仅当认证方式为手势识别时生效)
otherTitle string “” 否 备用按钮的标题。
指纹/人脸:单次认证流程中失败次数达到最大值后会显示一个备用按钮,用户可通过点击备用按钮执行其他逻辑,开发者可通过处理回调结果result为other的情况来响应用户点击备用按钮的行为 。
手势:当GLOpeationType为verify时手势认证页面底部会显示一个备用按钮(默认值为“忘记手势密码”),用户可通过点击备用按钮执行其他逻辑,开发者可通过处理回调结果result为other的情况来响应用户点击备用按钮的行为 。
additionalTitle string “” 否 附加备用按钮的标题。(仅当认证方式为手势识别时生效)
当GLOpeationType为verify并且additionalTitle有值时手势认证页面底部会显示一个附加备用按钮,用户可通过点击附加备用按钮执行其他逻辑,开发者可通过处理回调结果result为additional的情况来响应用户点击备用按钮的行为 。
failAlertEnabled boolean true 否 是否开启认证失败时的Alert提示,如果禁用该配置开发者可根据返回参数中的errCode自定义认证失败的Alert提示(Android暂无场景使用该参数)

requestAuthModes

值 说明 最低版本
gesture 手势识别
fingerPrint 指纹识别(调用本接口传递fingerPrint参数时,Android屏幕指纹设备中会存在系统指纹识别UI覆盖本接口指纹识别UI的情况,针对该问题开发者可考虑与设备厂商沟通解决)
facial 人脸识别(Android暂不支持)

注意:

  • 所有设备均支持gesture手势识别
  • 当一台设备同时支持多种识别认证方式时本接口按照如下优先级选择认证方式:facial > fingerPrint > gesture

verifyType

值 说明 最低版本
GL 手势识别
FP 指纹识别/人脸识别(优先级:人脸识别 > 指纹识别)(Android暂不支持人脸识别)

GLOpeationType

值 说明 最低版本
verify 认证手势
set 设置手势
update 更新手势
close 关闭手势(close会让用户先认证手势,
认证通过后才会执行关闭手势的逻辑)
clear 清除手势(clear会直接执行清除手势的逻辑)

请求调用示例

LightSDK.native.verifyOpeation({
requestAuthModes: ["gesture", "fingerPrint", "facial"],
authContent: "请录入您的生物认证信息"
}, function (res) {
console.log(JSON.stringify(res, null, 4));
})

返回值说明

字段名 类型 说明
errCode number 错误码
authMode string 生物认证方式
result
【已废弃(请使用errCode字段)】
string 执行结果

errCode 的合法值

值 说明 最低版本
0 识别成功
90003 请求使用的生物识别方式不支持
90007 内部错误
90008 用户取消验证
90009 识别失败
90010 重试次数过多被冻结
90011 本机未录入所需生物信息
80001 备用按钮被点击
80002 附加备用按钮被点击

authMode 的合法值

值 说明 最低版本
gesture 手势识别
fingerPrint 指纹识别
facial 人脸识别(Android暂不支持)

result 的合法值

值 说明 最低版本
success 验证成功
fail 验证失败
other 备用按钮被点击
additional 附加备用按钮被点击
cancel 用户取消验证

返回字段示例

{
"info": {
"error_code": "0",
"error_message": "success"
},
"data": {
"errCode": 0,
"result": "success",
"authMode": "fingerPrint"
}
}

注意事项

1、需要在config.js配置文件中做以下配置:(老版本的配置lock已不再提供维护)

module.exports = {
plugins: {
"localauth": {
"inputParams": {
"title": "手势密码"
},
"navigationbar": {
"disableSystemBarTint": false,
"backgroundColor": "#e81f1f"
},
"style": {
"backgroundColor": "#000000",//背景色
"headerBackgroundColor": "#ffffff",
"headerTextColor": "#ffffff",
"hintTextColor": "#ffffff",//错误提示文字颜色
"defaultColor": "#ffffff",//手势未输入状态时默认颜色
"selectedColor": "#6D90FB",//已输入手势的颜色
"inCorrectColor": "#db5329",//手势输入有误后的颜色
"lineColor": "#6D90FB",//手势输入过程中连接的线的颜色
"lineWidth": 3//线的宽度
},
"config": {
"maxNumberOfRetries": 3,//重试次数
"minNumberOfNodes": 4,//最少连接的节点个数
"freezeTime": 10//超过重试次数后的锁定时间
}
}
}
};

2、目前android手机指纹解锁分为屏上指纹和屏下指纹,屏上指纹产生系统ui遮挡自定义的指纹识别弹窗,需客户自行与手机厂商沟通,为app做适配。屏上指纹取消识别errCode返回90007。

效果