跳到主要内容

认证过程中取消认证

统一用户认证框架提供了cancel接口,当应用在认证过程中,需要取消认证时可调用该接口。

接口说明

具体参数、返回值、错误码等描述,请参考对应的cancel

此处仅展示了取消认证操作的接口,在取消认证前,需要先发起认证,发起认证的接口列表、详细说明可参考发起认证章节和API文档。

接口名称功能描述
cancel(): void取消本次认证操作。

开发步骤

  1. 申请权限:ohos.permission.ACCESS_BIOMETRIC。
  2. 指定用户认证相关参数AuthParam(包括挑战值、认证类型UserAuthType列表和认证等级AuthTrustLevel),获取认证对象UserAuthInstance,并调用UserAuthInstance.start发起认证。此步骤详细说明可参考发起认证
  3. 使用已经成功发起认证的UserAuthInstance对象调用UserAuthInstance.cancel接口取消本次认证。

示例代码为发起认证可信等级≥ATL3的人脸+锁屏口令认证后,取消认证请求:

handleAuthResultAndCanceling(userAuthInstance: userAuth.UserAuthInstance, exampleNumber: number) {
// ...
// 启动认证
userAuthInstance.start();
Logger.info('auth start successfully');
// ...
// 取消认证
userAuthInstance.cancel();
Logger.info('auth cancel successfully');
// ...
}

/*
* cancel-authentication.md
* 发起认证可信等级≥ATL3的人脸+锁屏密码认证后,取消认证请求
* */
cancelingUserAuthentication() {
try {
const randData = getRandData();
if (!randData) {
return;
}
// 设置认证参数
const authParam: userAuth.AuthParam = {
challenge: randData,
authType: [userAuth.UserAuthType.PIN, userAuth.UserAuthType.FACE, userAuth.UserAuthType.FINGERPRINT],
authTrustLevel: userAuth.AuthTrustLevel.ATL3,
};
// 配置认证界面
const widgetParam: userAuth.WidgetParam = {
title: resourceToString($r('app.string.title')),
};
// 获取认证对象
const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
Logger.info('get userAuth instance successfully');
this.handleAuthResultAndCanceling(userAuthInstance, ResultIndex.CANCEL);
} catch (error) {
const err: BusinessError = error as BusinessError;
Logger.error(`auth failed, code is ${err?.code as number}, message is ${err?.message}`);
}
}

示例代码