# OnlineAuthenticationkit_codelab_IFAAClientdemo_ArkTS
**Repository Path**: harmonyos_codelabs/online-authenticationkit_codelab_-ifaaclientdemo_-arkts
## Basic Information
- **Project Name**: OnlineAuthenticationkit_codelab_IFAAClientdemo_ArkTS
- **Description**: 本示例展示了IFAA免密身份认证接口的使用方法,IIFAA协议具体功能请参考IIFAA本地免密技术规范
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-06-19
- **Last Updated**: 2025-08-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# IFAA
## 介绍
本示例展示了IFAA免密身份认证接口的使用方法,IIFAA协议具体功能请参考[IIFAA本地免密技术规范](https://www.iifaa.org.cn/technical#paper)
通过从 @kit.OnlineAuthenticationKit 导入IFAA API接口,可实现基于IIFAA协议提供的端侧免密开通,认证和注销功能。
## 效果预览
| 应用入口 | 应用主页| 接口使用按钮 |
| --------------- | --------------- | -------------- |
| 点击图标打开应用 | 应用主页显示在设备屏幕 | 点击接口测试按钮调用接口 |
|
|
|
|
## 工程目录
```
├── entry/src/main/ets // 代码区
│ ├── entryability
│ │ └── EntryAbility.ets // 程序入口类
│ ├── model
│ │ └── IfaaModel.ets // 开通、认证、关闭功能实现
│ └── pages
│ └── Index.ets // 主页面入口
│ └── util
│ └── Util.ets // 工具类
```
## 使用说明
1. 使用指纹/3D人脸进行免密身份认证,移动端设备需要录入对应的生物特征信息。
2. 在设备录入指纹/3D人脸后,点击开启按钮,页面弹出弹窗进行认证,提示开启成功。
3. 点击认证按钮,可使用生物特征(人脸/指纹)进行IFAA免密身份认证。
4. 点击关闭按钮,关闭IFAA生物特征(人脸/指纹)免密身份认证。
## 具体实现
以IFAA认证功能为例,业务使用时,需要先进行import导入如下IFAA API:
import { ifaa } from '@kit.OnlineAuthenticationKit'
* function preAuthSync(): Uint8Array;
* function auth(authToken: Uint8Array, authData: Uint8Array):Promise<Uint8Array>
业务使用时,首先需要在设备中存入指纹或3D人脸;首先通过调用preAuth()接口获取本次验证临时challenge参数,该数值需与生物认证所用challenge保持一致,IFAA服务会进行时效校验,获取参数后长时间未使用会导致验证失败;
通过调用User Authentication Kit成功获取指纹/人脸信息后,使用auth()接口进行身份认证,认证成功返回签名报文,失败会抛出异常。
具体用例请参考Index.ets
## 相关权限
1. 获取生物识别权限:ohos.permission.ACCESS_BIOMETRIC。
## 依赖
UserAuthenticationKit
## 约束与限制
1. 本示例仅支持标准系统上运行,支持设备:华为手机、平板、2in1;
2. 本示例需要使用DevEco Studio NEXT Developer Beta1才可编译运行;
3. HarmonyOS系统:HarmonyOS NEXT Beta1及以上。
4. HarmonyOS SDK版本:HarmonyOS 5.1.0 Release SDK及以上。
5. 样例代码需要使用IIFAA中心服务器签名的报文才能取得正确的结果。