1# Canceling User Authentication
2
3
4This topic walks you through the process of canceling an authentication in process.
5
6
7## Available APIs
8
9For details about the parameters, return value, and error codes, see [cancel](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#cancel10).
10
11This topic describes only the API for canceling authentication. For details about the APIs for initiating authentication, see [Initiating Authentication](start-authentication.md) and [User Authentication](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md).
12
13| API| Description|
14| -------- | -------- |
15| cancel(): void | Cancels this user authentication.|
16
17
18## How to Develop
19
201. Check that the application has the ohos.permission.ACCESS_BIOMETRIC permission. For details about how to request permissions, see [Requesting Permissions](prerequisites.md#requesting-permissions).
21
222. Set [AuthParam](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#authparam10) (including the challenge value, [UserAuthType](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#userauthtype8), and [AuthTrustLevel](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#authtrustlevel8)), obtain a [UserAuthInstance](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#userauthinstance10) instance, and call [UserAuthInstance.start](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#start10) to start authentication.
23   For details, see [Initiating Authentication](start-authentication.md).
24
253. Use [UserAuthInstance.cancel](../../reference/apis-user-authentication-kit/js-apis-useriam-userauth.md#cancel10) with the **UserAuthInstance** instance that has initiated the authentication to cancel the authentication.
26
27Example: Initiate the facial and lock screen password authentication with the authentication trust level greater than or equal to ATL3 and cancel it.
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  // Set authentication parameters.
39  const authParam: userAuth.AuthParam = {
40    challenge: randData,
41    authType: [userAuth.UserAuthType.PIN, userAuth.UserAuthType.FACE],
42    authTrustLevel: userAuth.AuthTrustLevel.ATL3,
43  };
44  // Set the authentication page.
45  const widgetParam: userAuth.WidgetParam = {
46    title: 'Verify identity',
47  };
48  // Obtain a UserAuthInstance object.
49  const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
50  console.info('get userAuth instance success');
51  // Start user authentication.
52  userAuthInstance.start();
53  console.info('auth start success');
54  // Cancel the authentication.
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