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_BIOMETRIC。 25 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