js-apis-useriam-userauth.md 22.9 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

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

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

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

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

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

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

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

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

301
**参数:**
302

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


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

  ```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 已提交
320
              if (result == userIAM_userAuth.ResultCode.SUCCESS) {
321 322 323 324 325 326 327
                  // 此处添加认证成功逻辑
              }  else {
                  // 此处添加认证失败逻辑
              }
          } catch (e) {
              console.info("auth onResult error = " + e);
          }
328
      },
329 330 331 332 333 334 335 336 337 338 339

      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 已提交
340 341
  ```

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

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

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

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

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

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

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

360 361 362 363 364 365 366 367 368
  ```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 已提交
369
              if (result == userIAM_userAuth.ResultCode.SUCCESS) {
370 371 372 373 374 375 376
                  // 此处添加认证成功逻辑
              }  else {
                  // 此处添加认证失败逻辑
              }
          } catch (e) {
              console.info("auth onResult error = " + e);
          }
377
      },
Z
zengyawen 已提交
378

379 380 381 382 383 384 385 386 387 388 389 390 391
      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 已提交
392

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

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

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

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

表示执行结果的枚举。

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

409 410 411 412 413 414 415 416 417 418 419 420 421
| 名称                    | 默认值 | 描述                 |
| ----------------------- | ------ | -------------------- |
| 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 已提交
422 423


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

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

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

430 431 432 433 434 435 436 437 438 439 440 441 442
| 名称                          | 默认值 | 描述                                 |
| ----------------------------- | ------ | ------------------------------------ |
| 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 已提交
443 444


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

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

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

451 452 453 454 455 456 457 458
| 名称                              | 默认值 | 描述                                               |
| --------------------------------- | ------ | -------------------------------------------------- |
| 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 已提交
459 460


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

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

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

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

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

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

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

478 479 480 481 482
| 名称 | 默认值 | 描述                      |
| ---- | ------ | ------------------------- |
| ATL1 | 10000  | 认证结果的信任等级级别1。 |
| ATL2 | 20000  | 认证结果的信任等级级别2。 |
| ATL3 | 30000  | 认证结果的信任等级级别3。 |
483 484 485 486 487 488 489 490 491 492 493 494 495 496
| ATL4 | 40000  | 认证结果的信任等级级别4。 |

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

getAuthenticator(): Authenticator

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

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

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

**返回值:**
497

498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516
| 类型                                      | 说明         |
| ----------------------------------------- | ------------ |
| [Authenticator](#authenticatordeprecated) | 认证器对象。 |

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

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

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

认证器对象。


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

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

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

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

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

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

**参数:**

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

 callback返回值:

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

**示例:**
  ```js
Y
youliang_1314 已提交
544 545 546
  let authenticator = userIAM_userAuth.getAuthenticator();
  authenticator.execute("FACE_ONLY", "S2", (error, code)=>{
      if (code === userIAM_userAuth.ResultCode.SUCCESS) {
547 548 549 550
          console.info("auth success");
          return;
      }
      console.error("auth fail, code = " + code);
Y
youliang_1314 已提交
551
  });
552 553 554 555 556
  ```


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

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

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

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

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

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

**参数:**
569

570 571
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
Y
youliang_1314 已提交
572 573
| type   | AuthType | 是   | 认证类型,当前只支持"FACE_ONLY"。<br/>ALL为预留参数,当前版本暂不支持ALL类型的认证。 |
| level  | SecureLevel | 是   | 安全级别,对应认证的安全级别,有效值为"S1"(最低)、"S2"、"S3"、"S4"(最高)。<br/>具备3D人脸识别能力的设备支持"S3"及以下安全级别的认证。<br/>具备2D人脸识别能力的设备支持"S2"及以下安全级别的认证。 |
574 575

**返回值:**
576

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

**示例:**

Y
youliang_1314 已提交
583 584 585 586 587 588 589 590
  ```js
  let authenticator = userIAM_userAuth.getAuthenticator();
  authenticator.execute("FACE_ONLY", "S2").then((code)=>{
      console.info("auth success");
  }).catch((error)=>{
      console.error("auth fail, code = " + error);
  });
  ```
591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613

## 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    | 其他错误。                 |