1# 认证过程中取消认证
2
3
4统一用户认证框架提供了cancel接口,当应用在认证过程中,需要取消认证时可调用该接口。
5
6
7## 接口说明
8
9具体参数、返回值、错误码等描述,请参考对应的[API文档](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#cancel10)。
10
11此处仅展示了取消认证操作的接口,在取消认证前,需要先发起认证,发起认证的接口列表、详细说明可参考[发起认证](start-authentication.md)章节和API文档。
12
13| 接口名称 | 功能描述 |
14| -------- | -------- |
15| cancel(): void | 取消本次认证操作。 |
16
17
18## 开发步骤
19
201. [申请权限](prerequisites.md#申请权限):ohos.permission.ACCESS_BIOMETRIC21
222. 指定用户认证相关参数[AuthParam](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#authparam10)(包括挑战值、认证类型[UserAuthType](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#userauthtype8)列表和认证等级[AuthTrustLevel](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#authtrustlevel8)),获取认证对象[UserAuthInstance](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#userauthinstance10),并调用[UserAuthInstance.start](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#start10)发起认证。
23   此步骤详细说明可参考[发起认证](start-authentication.md)。
24
253. 通过使用已经成功发起认证的UserAuthInstance对象调用[UserAuthInstance.cancel](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#cancel10)接口取消本次认证。
26
27示例代码为发起认证可信等级≥ATL3的人脸+锁屏密码认证后,取消认证请求:
28
29```ts
30import { BusinessError } from  '@kit.BasicServicesKit';
31import { cryptoFramework } from '@kit.CryptoArchitectureKit';
32import { userAuth } from '@kit.UserAuthenticationKit';
33
34try {
35  const rand = cryptoFramework.createRandom();
36  const len: number = 16;
37  const randData: Uint8Array = rand?.generateRandomSync(len)?.data;
38  // 设置认证参数
39  const authParam: userAuth.AuthParam = {
40    challenge: randData,
41    authType: [userAuth.UserAuthType.PIN, userAuth.UserAuthType.FACE],
42    authTrustLevel: userAuth.AuthTrustLevel.ATL3,
43  };
44  // 配置认证界面
45  const widgetParam: userAuth.WidgetParam = {
46    title: '请进行身份认证',
47  };
48  // 获取认证对象
49  const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
50  console.info('get userAuth instance success');
51  // 开始认证
52  userAuthInstance.start();
53  console.info('auth start success');
54  // 取消认证
55  userAuthInstance.cancel();
56  console.info('auth cancel success');
57} catch (error) {
58  const err: BusinessError = error as BusinessError;
59  console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`);
60}
61```
62