• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 认证过程中取消认证
2
3<!--Kit: User Authentication Kit-->
4<!--Subsystem: UserIAM-->
5<!--Owner: @WALL_EYE-->
6<!--Designer: @lichangting518-->
7<!--Tester: @jane_lz-->
8<!--Adviser: @zengyawen-->
9
10统一用户认证框架提供了cancel接口,当应用在认证过程中,需要取消认证时可调用该接口。
11
12## 接口说明
13
14具体参数、返回值、错误码等描述,请参考对应的[API文档](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#cancel10)。
15
16此处仅展示了取消认证操作的接口,在取消认证前,需要先发起认证,发起认证的接口列表、详细说明可参考[发起认证](start-authentication.md)章节和API文档。
17
18| 接口名称 | 功能描述 |
19| -------- | -------- |
20| cancel(): void | 取消本次认证操作。 |
21
22## 开发步骤
23
241. [申请权限](prerequisites.md#申请权限):ohos.permission.ACCESS_BIOMETRIC25
262. 指定用户认证相关参数[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)发起认证。此步骤详细说明可参考[发起认证](start-authentication.md)。
27
283. 使用已经成功发起认证的UserAuthInstance对象调用[UserAuthInstance.cancel](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#cancel10)接口取消本次认证。
29
30示例代码为发起认证可信等级≥ATL3的人脸+锁屏口令认证后,取消认证请求:
31
32```ts
33import { BusinessError } from  '@kit.BasicServicesKit';
34import { cryptoFramework } from '@kit.CryptoArchitectureKit';
35import { userAuth } from '@kit.UserAuthenticationKit';
36
37try {
38  const rand = cryptoFramework.createRandom();
39  const len: number = 16;
40  let randData: Uint8Array | null = null;
41  let retryCount = 0;
42  while(retryCount < 3){
43    randData = rand?.generateRandomSync(len)?.data;
44    if(randData){
45      break;
46    }
47    retryCount++;
48  }
49  if(!randData){
50    return;
51  }
52  // 设置认证参数。
53  const authParam: userAuth.AuthParam = {
54    challenge: randData,
55    authType: [userAuth.UserAuthType.PIN, userAuth.UserAuthType.FACE],
56    authTrustLevel: userAuth.AuthTrustLevel.ATL3,
57  };
58  // 配置认证界面。
59  const widgetParam: userAuth.WidgetParam = {
60    title: '请进行身份认证',
61  };
62  // 获取认证对象。
63  const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
64  console.info('get userAuth instance success');
65  // 开始认证。
66  userAuthInstance.start();
67  console.info('auth start success');
68  // 取消认证。
69  userAuthInstance.cancel();
70  console.info('auth cancel success');
71} catch (error) {
72  const err: BusinessError = error as BusinessError;
73  console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`);
74}
75```
76