# OnlineAuthenticationkit_sample_FIDO2Clientdemo_ArkTS
**Repository Path**: harmonyos_samples/online-authenticationkit_sample_fido2clientdemo_arkts
## Basic Information
- **Project Name**: OnlineAuthenticationkit_sample_FIDO2Clientdemo_ArkTS
- **Description**: 本示例主要展示通行密钥的移动端的线上快速身份认证能力。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2025-07-09
- **Last Updated**: 2026-01-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 基于在线认证服务实现通行密钥功能(ArkTS)
## 介绍
本示例展示了通行密钥服务提供的ArkTS示例代码的使用方法,可实现基于FIDO2协议的通行密钥注册、本地免密认证和跨设备扫码认证能力。
1. 通行密钥注册:支持使用用户身份认证特征(如人脸、指纹、PIN码)作为平台认证器,在本设备上创建应用或网页的通行密钥。
2. 本地免密认证:支持使用用户身份认证特征(如人脸、指纹、PIN码)作为平台认证器,使用通行密钥在本设备上进行应用或网页的免密认证。
3. 跨设备扫码认证:支持使用已注册通行密钥的移动设备作为漫游认证器,使用跨设备扫码的方式,在其他设备上进行应用或网页的免密认证。
## 效果预览
| 应用主页 | 接口使用按钮 |
|---------------------------------------------------------|-----------------------------------------------------|
| 应用主页显示在设备屏幕 | 点击接口测试按钮调用接口 |
|
|
|
## 工程目录
```
└── entry/src/main/ets
├── Pages // 连接FIDO服务器,获取注册、认证、注销报文
│ └── Index.ets // 程序入口类
└── server
├── Fido2NetUtil.ets // 连接服务器工具类
├── ServerAuthenticationExtensionsClientOutputs.ets // 用于构造认证响应扩展的数据结构类
├── ServerAuthenticatorAssertionResponse.ets // 用于构造认证器断言响应的数据结构类
├── ServerAuthenticatorAttestationResponse.ets // 用于构造认证器证明响应的数据结构类
├── ServerPublicKeyCredentialCreation.ets // 用于构造向服务器传递响应报文的数据结构体
├── ServerPublicKeyCredentialCreationOptions.ets // 用于构造创建新身份验证凭据选项的数据结构类
├── ServerPublicKeyCredentialDescriptor.ets // 用于构造创建注册或验证凭据参数的数据结构类
├── ServerPublicKeyCredentialRequest.ets // 用于构造向服务器请求报文的数据结构类
├── ServerPublicKeyCredentialRequestOptions.ets // 用于构造通行密钥认证请求参数的数据结构类
└── ServerPublicKeyCredentialUserEntity.ets // 用于构造创建新凭据时提供其他用户账户属性的数据结构类
```
## 使用说明
1. 运行前需修改并指定服务器地址(entry/src/main/ets/server/Fido2NetUtil.ets);
2. 在主界面,每次使用FIDO2功能之前,需要首先点击【获取能力列表】查看客户端当前是否支持该功能;
3. 点击【获取平台认证器能力】查看支持的平台身份验证器列表;
4. 点击【注册】进行注册,页面弹出弹窗提示注册成功;
5. 注册后,点击【认证】进行认证,页面弹出弹窗提示认证成功;
## 具体实现(接口参考@hms.security.fido2)
业务使用时,需要先进行import导入如下fido2 API:
* function getClientCapabilities(context: common.Context): Promise