该接口目前暂停开放。
本模块提供Account Kit实名认证能力,包括人脸核身功能。
起始版本:5.0.0(12)
该接口目前暂停开放。
import { realName } from '@kit.AccountKit'; 该类为人脸核身请求对象,定义了人脸核身请求参数。
模型约束:此接口仅可在Stage模型下使用。
元服务API:从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力:SystemCapability.AuthenticationServices.HuaweiID.RealNameVerify
起始版本:5.0.0(12)
名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
verificationToken | string | 否 | 否 | 身份认证令牌,调用华为账号OpenRealName服务实名信息校验接口获取。 |
state | string | 否 | 是 | 请求体中的state参数,开发者可自定义,字符包含0-9、a-z、A-Z、英文点号、英文冒号、斜杠、下划线等,长度限制255,校验规则^[0-9a-zA-Z:/\.\-_]{1,255}$。该参数与响应体中返回的state比较,校验是否是当前请求,可防止跨站攻击。 推荐开发者用随机数并做一致性校验。建议生成方式:util.generateRandomUUID()。 |
示例:
import { realName } from '@kit.AccountKit';
import { util } from '@kit.ArkTS';
const request: realName.FacialRecognitionVerificationRequest = {
verificationToken: "<可调用华为账号服务实名信息校验接口获取>", // 调用华为账号OpenRealName服务实名信息校验接口获取
state: util.generateRandomUUID() // 建议使用generateRandomUUID生成state
} 该类为人脸核身请求结果对象,定义了人脸核身请求返回结果数据字段。
模型约束:此接口仅可在Stage模型下使用。
元服务API:从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力:SystemCapability.AuthenticationServices.HuaweiID.RealNameVerify
起始版本:5.0.0(12)
名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
facialRecognitionVerificationToken | string | 是 | 否 | 验证成功后返回的人脸核身验证令牌。 |
state | string | 是 | 是 | 响应体中返回的state,字符包含0-9、a-z、A-Z、英文点号、英文冒号、斜杠、下划线等,长度限制255,校验规则^[0-9a-zA-Z:/\.\-_]{1,255}$。与请求体中传入的state比较,校验是否是当前请求,防止跨站攻击。 推荐开发者用随机数并做一致性校验。建议生成方式:util.generateRandomUUID()。 |
该枚举为Account Kit实名认证服务相关接口的错误码。
模型约束:此接口仅可在Stage模型下使用。
元服务API:从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力:SystemCapability.AuthenticationServices.HuaweiID.RealNameVerify
起始版本:5.0.0(12)
名称 | 值 | 说明 |
|---|---|---|
NETWORK_ERROR | 网络不可用。 | |
ACCOUNT_NOT_LOGGED_IN | 用户未登录华为账号。 | |
PACKAGE_FINGERPRINT_CHECK_ERROR | 应用指纹证书校验失败。 | |
PERMISSION_CHECK_ERROR | 应用程序未申请对应permissions权限。 | |
USER_CANCELED | 用户取消验证。 | |
INTERNAL_ERROR | 内部错误。 | |
REAL_NAME_UNSUPPORTED | 该华为账号不支持实名验证。 | |
REAL_NAME_VERIFICATION_ERROR | 实名渠道验证错误。 | |
FACE_NOT_MATCH | 您的面部与作为身份证明的面部图像不匹配。 | |
REAL_NAME_NOT_EXIST | 未查询到该华为账号的实名信息。 | |
NAME_AND_ID_NUMBER_NOT_MATCH | 姓名和身份证号码不匹配。 | |
TOO_MANY_ATTEMPTS | 实名验证尝试次数过多。24小时后重试。 | |
VERIFICATION_TOKEN_INCORRECT | 参数verificationToken不合法。 | |
DEVICE_NOT_SUPPORTED | 此设备不支持此API。 |
startFacialRecognitionVerification(context: common.Context, request: FacialRecognitionVerificationRequest): Promise<FacialRecognitionVerificationResult>
执行华为账号人脸核身请求。使用Promise异步回调。
此接口暂不支持儿童账号使用。
模型约束:此接口仅可在Stage模型下使用。
元服务API:从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力:SystemCapability.AuthenticationServices.HuaweiID.RealNameVerify
起始版本:5.0.0(12)
参数:
参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
context | 是 | Context上下文。 应用可支持的Context有:UIAbilityContext和UIExtensionContext。 不支持应用在半模态、弹出框、子窗口等非全页面组件中使用UIExtensionContext调用。 元服务可支持的Context有:UIAbilityContext。 | |
request | 是 | 人脸核身请求对象,包含请求参数。 |
返回值:
类型 | 说明 |
|---|---|
Promise<FacialRecognitionVerificationResult> | Promise对象,返回FacialRecognitionVerificationResult对象。 |
错误码:
错误码ID | 错误信息 |
|---|---|
Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | |
The network is unavailable. | |
The user has not logged in with HUAWEI ID. | |
Failed to check the fingerprint of the application bundle. | |
The application does not have the required permissions. | |
The user canceled the verification of the HUAWEI ID. | |
Internal error. | |
Real-name verification is not supported for the HUAWEI ID. | |
Your face does not match your facial image as proof of identity. | |
No real-name information is found for the HUAWEI ID. | |
Your name and ID number do not match. | |
Too many real-name verification attempts. | |
The verificationToken parameter is incorrectly set. | |
This device does not support this API. |
示例:
import { realName } from '@kit.AccountKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { util } from '@kit.ArkTS';
const request: realName.FacialRecognitionVerificationRequest = {
verificationToken: "<可调用华为账号服务实名信息校验接口获取>", // 调用华为账号OpenRealName服务实名信息校验接口获取
state: util.generateRandomUUID() // 建议使用generateRandomUUID生成state
}
hilog.info(0x0000, 'testTag', 'verifyFacialRecognitionWithPromise params %{public}s,', JSON.stringify(request));
realName.startFacialRecognitionVerification(getContext(this), request).then(data => {
const verifyResult = data as realName.FacialRecognitionVerificationResult;
hilog.info(0x0000, 'testTag', 'Succeeded in verifying facial recognition.');
}).catch((error: BusinessError<Object>) => {
this.dealAllError(error);
})
// 错误处理
dealAllError(error: BusinessError<Object>): void {
hilog.error(0x0000, 'testTag', `Failed to authorize. Code: ${error.code}, message: ${error.message}`);
}