js-apis-useriam-userauth.md 22.8 KB
Newer Older
Z
zengyawen 已提交
1 2
# 用户认证

3 4 5
提供用户认证能力,可应用于设备解锁、支付、应用登录等身份认证场景。

> **说明:**
Z
zengyawen 已提交
6 7 8 9 10
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

11
```js
Z
zengyawen 已提交
12 13 14 15 16
import userIAM_userAuth from '@ohos.userIAM.userAuth';
```

## 完整示例

H
https://gitee.com/WALL_EYE 已提交
17
```js
18 19
// API version 8
import userIAM_userAuth from '@ohos.userIAM.userAuth';
20
let auth = new userIAM_userAuth.UserAuth();
21 22 23 24

export default {
    getVersion() {
        console.info("start get version");
25
        let version = this.auth.getVersion();
26 27 28 29 30
        console.info("auth version = " + version);
    },

    startAuth() {
        console.info("start auth");
31
        this.auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
32 33 34 35
            onResult: (result, extraInfo) => {
                try {
                    console.info("auth onResult result = " + result);
                    console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
H
https://gitee.com/WALL_EYE 已提交
36
                    if (result == userIAM_userAuth.ResultCode.SUCCESS) {
37 38 39 40 41 42 43
                        // 此处添加认证成功逻辑
                    }  else {
                        // 此处添加认证失败逻辑
                    }
                } catch (e) {
                    console.info("auth onResult error = " + e);
                }
44
            },
45 46 47 48 49 50 51 52 53 54 55

            onAcquireInfo: (module, acquire, extraInfo) => {
                try {
                    console.info("auth onAcquireInfo module = " + module);
                    console.info("auth onAcquireInfo acquire = " + acquire);
                    console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo));
                } catch (e) {
                    console.info("auth onAcquireInfo error = " + e);
                }
            }
        });
Z
zengyawen 已提交
56 57 58 59
    },

    checkAuthSupport() {
        console.info("start check auth support");
60
        let checkCode = this.auth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1);
61
        if (checkCode == userIAM_userAuth.ResultCode.SUCCESS) {
Z
zengyawen 已提交
62 63 64 65 66 67 68 69 70 71
            console.info("check auth support success");
            // 此处添加支持指定类型认证的逻辑
        } else {
            console.error("check auth support fail, code = " + checkCode);
            // 此处添加不支持指定类型认证的逻辑
        }
    },

    cancelAuth() {
        console.info("start cancel auth");
72 73 74 75
        // contextId通过auth接口获取
        let contextId = auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
            onResult: (result, extraInfo) => {
                console.info("auth onResult result = " + result);
76
            },
77 78 79 80 81

            onAcquireInfo: (module, acquire, extraInfo) => {
                console.info("auth onAcquireInfo module = " + module);
            }
        });
82
        let cancelCode = this.auth.cancel(contextId);
H
https://gitee.com/WALL_EYE 已提交
83
        if (cancelCode == userIAM_userAuth.ResultCode.SUCCESS) {
Z
zengyawen 已提交
84 85 86 87 88 89 90 91
            console.info("cancel auth success");
        } else {
            console.error("cancel auth fail");
        }
    }
}
```

92
```js
93 94
// API version 6
import userIAM_userAuth from '@ohos.userIAM.userAuth';
95

96 97 98 99 100 101 102 103 104 105 106 107 108 109
export default {
    startAuth() {
        console.info("start auth");
        let auth = userIAM_userAuth.getAuthenticator();
        auth.execute("FACE_ONLY", "S2").then((code)=>{
            console.info("auth success");
            // 此处添加认证成功逻辑
        }).catch((code)=>{
            console.error("auth fail, code = " + code);
            // 此处添加认证失败逻辑
        });
    }
}
```
H
https://gitee.com/WALL_EYE 已提交
110

111 112

## UserAuth<sup>8+</sup>
Z
zengyawen 已提交
113

114
认证器的对象。
Z
zengyawen 已提交
115

116
### constructor<sup>8+</sup>
Z
zengyawen 已提交
117

118
constructor()
119 120

表示获取的认证器对象。
Z
zengyawen 已提交
121

122
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
123

124
**返回值:**
125

126 127 128
| 类型                   | 说明                 |
| ---------------------- | -------------------- |
| [UserAuth](#userauth8) | UserAuth认证器对象。 |
Z
zengyawen 已提交
129

130
**示例:**
131 132 133 134 135

  ```js
  import userIAM_userAuth from '@ohos.userIAM.userAuth';

  let auth = new userIAM_userAuth.UserAuth();
Z
zengyawen 已提交
136 137
  ```

138
### getVersion<sup>8+</sup>
Z
zengyawen 已提交
139

140
getVersion() : number
Z
zengyawen 已提交
141

142 143
表示获取的认证器版本信息。

H
https://gitee.com/WALL_EYE 已提交
144 145
**需要权限**:ohos.permission.ACCESS_BIOMETRIC

146
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
147

148
**返回值:**
149

150 151 152
| 类型   | 说明                   |
| ------ | ---------------------- |
| number | 获取的认证器版本信息。 |
153

154
**示例:**
Z
zengyawen 已提交
155

156 157 158 159 160 161 162 163 164 165
  ```js
  import userIAM_userAuth from '@ohos.userIAM.userAuth';

  let auth = new userIAM_userAuth.UserAuth();
  let version = auth.getVersion();
  console.info("auth version = " + version);
  ```

### getAvailableStatus<sup>8+</sup>

166
getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel) : number
167 168

表示检查指定的认证等级的认证能力是否可用。
Z
zengyawen 已提交
169

H
https://gitee.com/WALL_EYE 已提交
170 171
**需要权限**:ohos.permission.ACCESS_BIOMETRIC

172
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
173

174
**参数:**
175

176 177 178 179
| 参数名         | 类型                               | 必填 | 说明                       |
| -------------- | ---------------------------------- | ---- | -------------------------- |
| authType       | [UserAuthType](#userauthtype8)     | 是   | 认证类型,当前只支持FACE。 |
| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | 是   | 认证结果的信任等级。       |
Z
zengyawen 已提交
180

181
**返回值:**
182

183 184 185
| 类型   | 说明                                                         |
| ------ | ------------------------------------------------------------ |
| number | 获取指定的认证等级的认证能力是否可用的检查结果,返回值参见[ResultCode](#resultcode8)。 |
Z
zengyawen 已提交
186

187
**示例:**
188 189 190 191 192 193 194

  ```js
  import userIAM_userAuth from '@ohos.userIAM.userAuth';

  let auth = new userIAM_userAuth.UserAuth();
  let checkCode = auth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1);
  if (checkCode == userIAM_userAuth.ResultCode.SUCCESS) {
Z
zengyawen 已提交
195
      console.info("check auth support success");
196
      // 此处添加支持指定类型认证的逻辑
Z
zengyawen 已提交
197 198
  } else {
      console.error("check auth support fail, code = " + checkCode);
199
      // 此处添加不支持指定类型认证的逻辑
Z
zengyawen 已提交
200 201 202
  }
  ```

203
### auth<sup>8+</sup>
Z
zengyawen 已提交
204

205
auth(challenge: Uint8Array, authType: UserAuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array
Z
zengyawen 已提交
206

207
表示执行用户认证,使用callback方式作为异步方法。
Z
zengyawen 已提交
208

H
https://gitee.com/WALL_EYE 已提交
209 210
**需要权限**:ohos.permission.ACCESS_BIOMETRIC

211
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
212

213
**参数:**
214

215 216 217 218 219 220
| 参数名         | 类型                                     | 必填 | 说明                     |
| -------------- | ---------------------------------------- | ---- | ------------------------ |
| challenge      | Uint8Array                               | 是   | 挑战值,可以填null。     |
| authType       | [UserAuthType](#userauthtype8)           | 是   | 认证类型,当前支持FACE。 |
| authTrustLevel | [AuthTrustLevel](#authtrustlevel8)       | 是   | 信任等级。               |
| callback       | [IUserAuthCallback](#iuserauthcallback8) | 是   | 回调函数。               |
221

222
**返回值:**
223

224 225 226
| 类型       | 说明                                                         |
| ---------- | ------------------------------------------------------------ |
| Uint8Array | ContextId,作为取消认证[cancelAuth](#cancelauth8)接口的入参。 |
Z
zengyawen 已提交
227

228
**示例:**
Z
zengyawen 已提交
229

230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249
  ```js
  import userIAM_userAuth from '@ohos.userIAM.userAuth';

  let auth = new userIAM_userAuth.UserAuth();
  auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
      onResult: (result, extraInfo) => {
          try {
              console.info("auth onResult result = " + result);
              console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
              if (result == userIAM_userAuth.ResultCode.SUCCESS) {
                  // 此处添加认证成功逻辑
              } else {
                  // 此处添加认证失败逻辑
              }
          } catch (e) {
              console.info("auth onResult error = " + e);
          }
      }
  });
  ```
Z
zengyawen 已提交
250

251
### cancelAuth<sup>8+</sup>
Z
zengyawen 已提交
252

253
cancelAuth(contextID : Uint8Array) : number
Z
zengyawen 已提交
254

255
表示通过contextID取消本次认证操作。
Z
zengyawen 已提交
256

H
https://gitee.com/WALL_EYE 已提交
257 258
**需要权限**:ohos.permission.ACCESS_BIOMETRIC

259
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
260

261
**参数:**
262

263 264 265
| 参数名    | 类型       | 必填 | 说明                                       |
| --------- | ---------- | ---- | ------------------------------------------ |
| contextID | Uint8Array | 是   | 上下文ID信息,通过[auth](#auth8)接口获得。 |
266

267
**返回值:**
268

269 270 271
| 类型   | 说明                     |
| ------ | ------------------------ |
| number | 取消本次认证操作的结果。 |
Z
zengyawen 已提交
272

273
**示例:**
274 275 276 277 278 279 280 281 282 283 284 285

  ```js
  import userIAM_userAuth from '@ohos.userIAM.userAuth';

  // contextId可通过auth接口获取,此处直接定义
  let contextId = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]);
  let cancelCode = auth.cancel(contextId);
  if (cancelCode == userIAM_userAuth.ResultCode.SUCCESS) {
      console.info("cancel auth success");
  } else {
      console.error("cancel auth fail");
  }
Z
zengyawen 已提交
286
  ```
287

288
## IUserAuthCallback<sup>8+</sup>
289 290 291 292 293

认证过程中回调结果的对象。

### onResult<sup>8+</sup>

294
onResult: (result : number, extraInfo : AuthResult) => void
295 296 297

表示在认证操作中,获取认证结果。

298
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
299

300
**参数:**
301

302 303 304 305
| 参数名    | 类型                       | 必填 | 说明                                                         |
| --------- | -------------------------- | ---- | ------------------------------------------------------------ |
| result    | number                     | 是   | 认证结果,参见[ResultCode](#resultcode8)。                   |
| extraInfo | [AuthResult](#authresult8) | 是   | 扩展信息,不同情况下的具体信息,<br/>如果身份验证通过,则在extrainfo中返回用户认证令牌,<br/>如果身份验证失败,则在extrainfo中返回剩余的用户认证次数,<br/>如果身份验证执行器被锁定,则在extrainfo中返回冻结时间。 |
306 307


308
**示例:**
309 310 311 312 313 314 315 316 317 318

  ```js
  import userIAM_userAuth from '@ohos.userIAM.userAuth';

  let auth = new userIAM_userAuth.UserAuth();
  auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
      onResult: (result, extraInfo) => {
          try {
              console.info("auth onResult result = " + result);
              console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
H
https://gitee.com/WALL_EYE 已提交
319
              if (result == userIAM_userAuth.ResultCode.SUCCESS) {
320 321 322 323 324 325 326
                  // 此处添加认证成功逻辑
              }  else {
                  // 此处添加认证失败逻辑
              }
          } catch (e) {
              console.info("auth onResult error = " + e);
          }
327
      },
328 329 330 331 332 333 334 335 336 337 338

      onAcquireInfo: (module, acquire, extraInfo) => {
          try {
              console.info("auth onAcquireInfo module = " + module);
              console.info("auth onAcquireInfo acquire = " + acquire);
              console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo));
          } catch (e) {
              console.info("auth onAcquireInfo error = " + e);
          }
      }
  });
Z
zengyawen 已提交
339 340
  ```

341
### onAcquireInfo<sup>8+</sup>
Z
zengyawen 已提交
342

343
onAcquireInfo ?: (module : number, acquire : number, extraInfo : any) => void
Z
zengyawen 已提交
344

345
表示在认证过程中,获取提示码信息,非必须实现。
Z
zengyawen 已提交
346

347
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
348

349
**参数:**
Z
zengyawen 已提交
350

351 352 353 354 355
| 参数名    | 类型   | 必填 | 说明                           |
| --------- | ------ | ---- | ------------------------------ |
| module    | number | 是   | 认证执行器的类型。             |
| acquire   | number | 是   | 认证执行器认证过程的交互信息。 |
| extraInfo | any    | 是   | 预留字段。                     |
Z
zengyawen 已提交
356

357
**示例:**
Z
zengyawen 已提交
358

359 360 361 362 363 364 365 366 367
  ```js
  import userIAM_userAuth from '@ohos.userIAM.userAuth';

  let auth = new userIAM_userAuth.UserAuth();
  auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
      onResult: (result, extraInfo) => {
          try {
              console.info("auth onResult result = " + result);
              console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
H
https://gitee.com/WALL_EYE 已提交
368
              if (result == userIAM_userAuth.ResultCode.SUCCESS) {
369 370 371 372 373 374 375
                  // 此处添加认证成功逻辑
              }  else {
                  // 此处添加认证失败逻辑
              }
          } catch (e) {
              console.info("auth onResult error = " + e);
          }
376
      },
Z
zengyawen 已提交
377

378 379 380 381 382 383 384 385 386 387 388 389 390
      onAcquireInfo: (module, acquire, extraInfo) => {
          try {
              console.info("auth onAcquireInfo module = " + module);
              console.info("auth onAcquireInfo acquire = " + acquire);
              console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo));
          } catch (e) {
              console.info("auth onAcquireInfo error = " + e);
          }
      }
  });
  ```

## AuthResult<sup>8+</sup>
Z
zengyawen 已提交
391

392
表示认证结果的对象。
Z
zengyawen 已提交
393

394
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
395

396 397 398 399 400 401 402
| 名称         | 参数类型   | 必填 | 说明                 |
| ------------ | ---------- | ---- | -------------------- |
| token        | Uint8Array | 否   | 身份认证令牌。       |
| remainTimes  | number     | 否   | 剩余的认证操作次数。 |
| freezingTime | number     | 否   | 认证操作的冻结时间。 |

## ResultCode<sup>8+</sup>
Z
zengyawen 已提交
403 404 405

表示执行结果的枚举。

406
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
407

408 409 410 411 412 413 414 415 416 417 418 419 420
| 名称                    | 默认值 | 描述                 |
| ----------------------- | ------ | -------------------- |
| SUCCESS                 | 0      | 执行成功。           |
| FAIL                    | 1      | 执行失败。           |
| GENERAL_ERROR           | 2      | 操作通用错误。       |
| CANCELED                | 3      | 操作取消。           |
| TIMEOUT                 | 4      | 操作超时。           |
| TYPE_NOT_SUPPORT        | 5      | 不支持的认证类型。   |
| TRUST_LEVEL_NOT_SUPPORT | 6      | 不支持的认证等级。   |
| BUSY                    | 7      | 忙碌状态。           |
| INVALID_PARAMETERS      | 8      | 无效参数。           |
| LOCKED                  | 9      | 认证器已锁定。       |
| NOT_ENROLLED            | 10     | 用户未录入认证信息。 |
Z
zengyawen 已提交
421 422


423
## FaceTips<sup>8+</sup>
Z
zengyawen 已提交
424

425
表示人脸认证过程中提示码的枚举。
Z
zengyawen 已提交
426

427
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
428

429 430 431 432 433 434 435 436 437 438 439 440 441
| 名称                          | 默认值 | 描述                                 |
| ----------------------------- | ------ | ------------------------------------ |
| FACE_AUTH_TIP_TOO_BRIGHT      | 1      | 光线太强,获取的图像太亮。           |
| FACE_AUTH_TIP_TOO_DARK        | 2      | 光线太暗,获取的图像太暗。           |
| FACE_AUTH_TIP_TOO_CLOSE       | 3      | 人脸距离设备过近。                   |
| FACE_AUTH_TIP_TOO_FAR         | 4      | 人脸距离设备过远。                   |
| FACE_AUTH_TIP_TOO_HIGH        | 5      | 设备太高,仅获取到人脸上部。         |
| FACE_AUTH_TIP_TOO_LOW         | 6      | 设备太低,仅获取到人脸下部。         |
| FACE_AUTH_TIP_TOO_RIGHT       | 7      | 设备太靠右,仅获取到人脸右部。       |
| FACE_AUTH_TIP_TOO_LEFT        | 8      | 设备太靠左,仅获取到人脸左部。       |
| FACE_AUTH_TIP_TOO_MUCH_MOTION | 9      | 在图像采集过程中,用户人脸移动太快。 |
| FACE_AUTH_TIP_POOR_GAZE       | 10     | 没有正视摄像头。                     |
| FACE_AUTH_TIP_NOT_DETECTED    | 11     | 没有检测到人脸信息。                 |
Z
zengyawen 已提交
442 443


444
## FingerprintTips<sup>8+</sup>
Z
zengyawen 已提交
445

446
表示指纹认证过程中提示码的枚举。
Z
zengyawen 已提交
447

448
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
449

450 451 452 453 454 455 456 457
| 名称                              | 默认值 | 描述                                               |
| --------------------------------- | ------ | -------------------------------------------------- |
| FINGERPRINT_AUTH_TIP_GOOD         | 0      | 获取的指纹图像良好。                               |
| FINGERPRINT_AUTH_TIP_DIRTY        | 1      | 由于传感器上可疑或检测到的污垢,指纹图像噪音过大。 |
| FINGERPRINT_AUTH_TIP_INSUFFICIENT | 2      | 由于检测到的情况,指纹图像噪声太大,无法处理。     |
| FINGERPRINT_AUTH_TIP_PARTIAL      | 3      | 仅检测到部分指纹图像。                             |
| FINGERPRINT_AUTH_TIP_TOO_FAST     | 4      | 快速移动,指纹图像不完整。                         |
| FINGERPRINT_AUTH_TIP_TOO_SLOW     | 5      | 缺少运动,指纹图像无法读取。                       |
Z
zengyawen 已提交
458 459


460
## UserAuthType<sup>8+</sup>
Z
zengyawen 已提交
461

462
表示身份认证的凭据类型枚举。
Z
zengyawen 已提交
463

464
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
465

466 467 468
| 名称        | 默认值 | 描述       |
| ----------- | ------ | ---------- |
| FACE        | 2      | 人脸认证。 |
469 470
| FINGERPRINT | 4      | 指纹认证。 |

471
## AuthTrustLevel<sup>8+</sup>
472 473 474

表示认证结果的信任等级枚举。

475
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
476

477 478 479 480 481
| 名称 | 默认值 | 描述                      |
| ---- | ------ | ------------------------- |
| ATL1 | 10000  | 认证结果的信任等级级别1。 |
| ATL2 | 20000  | 认证结果的信任等级级别2。 |
| ATL3 | 30000  | 认证结果的信任等级级别3。 |
482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514
| ATL4 | 40000  | 认证结果的信任等级级别4。 |

## userIAM_userAuth.getAuthenticator<sup>(deprecated)</sup>

getAuthenticator(): Authenticator

> **说明:**
> 从 API Version 8 开始废弃,建议使用[constructor](#constructor8)替代。

获取Authenticator对象,用于执行用户身份认证。

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**返回值:**
| 类型                                      | 说明         |
| ----------------------------------------- | ------------ |
| [Authenticator](#authenticatordeprecated) | 认证器对象。 |

**示例:**
  ```js
  let authenticator = userIAM_userAuth.getAuthenticator();
  ```

## Authenticator<sup>(deprecated)</sup>

> **说明:**
> 从 API Version 8 开始废弃,建议使用[UserAuth](#userauth8)替代。

认证器对象。


### execute<sup>(deprecated)</sup>

Y
youliang_1314 已提交
515
execute(type: AuthType, level: SecureLevel, callback: AsyncCallback&lt;number&gt;): void
516 517 518 519 520 521 522 523 524 525 526 527 528 529

> **说明:**
> 从 API Version 8 开始废弃,建议使用[auth](#auth8)替代。

执行用户认证,使用callback方式作为异步方法。

**需要权限**:ohos.permission.ACCESS_BIOMETRIC

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
Y
youliang_1314 已提交
530 531
| type     | AuthType                      | 是   | 认证类型,当前只支持"FACE_ONLY"。<br/>ALL为预留参数,当前版本暂不支持ALL类型的认证。 |
| level    | SecureLevel                      | 是   | 安全级别,对应认证的安全级别,有效值为"S1"(最低)、"S2"、"S3"、"S4"(最高)。<br/>具备3D人脸识别能力的设备支持"S3"及以下安全级别的认证。<br/>具备2D人脸识别能力的设备支持"S2"及以下安全级别的认证。 |
532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553
| callback | AsyncCallback&lt;number&gt; | 否   | 回调函数。                                                   |

 callback返回值:

| 类型   | 说明                                                         |
| ------ | ------------------------------------------------------------ |
| number | 表示认证结果,参见[AuthenticationResult](#authenticationresultdeprecated)。 |

**示例:**
  ```js
  authenticator.execute("FACE_ONLY", "S2", (code)=>{
      if (code == userIAM_userAuth.AuthenticationResult.SUCCESS) {
          console.info("auth success");
          return;
      }
      console.error("auth fail, code = " + code);
  })
  ```


### execute<sup>(deprecated)</sup>

Y
youliang_1314 已提交
554
execute(type:AuthType, level:SecureLevel): Promise&lt;number&gt;
555 556 557 558 559 560 561 562 563 564 565 566 567

> **说明:**
> 从 API Version 8 开始废弃,建议使用[auth](#auth8)替代。

执行用户认证,使用promise方式作为异步方法。

**需要权限**:ohos.permission.ACCESS_BIOMETRIC

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
Y
youliang_1314 已提交
568 569
| type   | AuthType | 是   | 认证类型,当前只支持"FACE_ONLY"。<br/>ALL为预留参数,当前版本暂不支持ALL类型的认证。 |
| level  | SecureLevel | 是   | 安全级别,对应认证的安全级别,有效值为"S1"(最低)、"S2"、"S3"、"S4"(最高)。<br/>具备3D人脸识别能力的设备支持"S3"及以下安全级别的认证。<br/>具备2D人脸识别能力的设备支持"S2"及以下安全级别的认证。 |
570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608

**返回值:**
| 类型                  | 说明                                                         |
| --------------------- | ------------------------------------------------------------ |
| Promise&lt;number&gt; | 返回携带一个number的Promise。number&nbsp;为认证结果,参见[AuthenticationResult](#authenticationresultdeprecated)。 |

**示例:**

```js
let authenticator = userIAM_userAuth.getAuthenticator();
authenticator.execute("FACE_ONLY", "S2").then((code)=>{
    console.info("auth success");
}).catch((code)=>{
    console.error("auth fail, code = " + code);
});
```

## AuthenticationResult<sup>(deprecated)</sup>

> **说明:**
> 从 API Version 8 开始废弃,建议使用[ResultCode](#resultcode8)替代。

表示认证结果的枚举。

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

| 名称               | 默认值 | 描述                       |
| ------------------ | ------ | -------------------------- |
| NO_SUPPORT         | -1     | 设备不支持当前的认证方式。 |
| SUCCESS            | 0      | 认证成功。                 |
| COMPARE_FAILURE    | 1      | 比对失败。                 |
| CANCELED           | 2      | 用户取消认证。             |
| TIMEOUT            | 3      | 认证超时。                 |
| CAMERA_FAIL        | 4      | 开启相机失败。             |
| BUSY               | 5      | 认证服务忙,请稍后重试。   |
| INVALID_PARAMETERS | 6      | 认证参数无效。             |
| LOCKED             | 7      | 认证失败次数过多,已锁定。 |
| NOT_ENROLLED       | 8      | 未录入认证凭据。           |
| GENERAL_ERROR      | 100    | 其他错误。                 |