Files
sample-site/SDK_MODIFICATIONS.md
2026-05-20 22:40:32 +09:00

128 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FIDO2 UI SDK 修改说明
## 修改概述
根据需求对UI SDK进行了以下修改
1. **增加用户ID参数**renderDeviceManager函数现在需要userId参数
2. **删除登录功能**移除了登录相关的UI和事件处理
3. **简化设备管理**设备操作现在直接使用传入的用户ID
## 主要修改
### 1. renderDeviceManager函数
**修改前:**
```javascript
Fido2UIManager.renderDeviceManager({
container: '#device-container',
mode: 'modal',
serverUrl: SERVER_URL
});
```
**修改后:**
```javascript
Fido2UIManager.renderDeviceManager({
userId: 'user@example.com', // 新增必需参数
container: '#device-container',
mode: 'modal',
serverUrl: SERVER_URL
});
```
### 2. DeviceManager修改
- `addDevice()`: 使用`this.config.userId`代替从sessionStorage获取用户ID
- `deleteDevice()`: 使用`this.config.userId`代替从sessionStorage获取用户ID
- `checkSession()`: 简化为始终返回true假设用户已登录
- `getUserId()`: 返回`this.config.userId`
### 3. 删除的功能
- 移除了登录按钮的UI渲染
- 移除了login事件处理器
- 移除了session检查逻辑
- 移除了getSessionData方法
### 4. 错误处理
如果未提供userId参数renderDeviceManager会抛出错误
```
'userId is required for device management operations'
```
## 使用示例
### 模式1模态框模式
```javascript
Fido2UIManager.renderDeviceManager({
userId: 'user@example.com',
container: '#device-container',
mode: 'modal',
serverUrl: 'https://your-server.com',
language: 'en-US',
callbacks: {
onInit: function(manager) {
console.log('Device manager initialized');
},
onDeviceAdded: function(device) {
console.log('Device added:', device);
},
onDeviceDeleted: function(deviceId) {
console.log('Device deleted:', deviceId);
},
onDeviceListLoaded: function(devices) {
console.log('Devices loaded:', devices);
},
onError: function(error) {
console.error('Error:', error);
},
onClose: function() {
console.log('Device manager closed');
}
}
});
```
### 模式2独立页面模式
```javascript
Fido2UIManager.renderDeviceManager({
userId: 'user@example.com',
mode: 'standalone',
serverUrl: 'https://your-server.com',
language: 'zh-CN',
theme: {
primaryColor: '#007bff',
backgroundColor: '#f8f9fa'
},
features: {
showAddButton: true,
showDeleteButton: true,
showUserInfo: true,
showSessionStatus: true
}
});
```
## 注意事项
1. **userId参数是必需的**不提供userId会导致错误
2. **假设用户已登录**:不再进行登录状态检查
3. **向后兼容**:此修改可能会影响现有集成,需要更新调用代码
4. **删除的API**renderLogin函数仍然存在但如果不再需要可以移除
## 测试
可以使用test-device-manager.html文件测试修改后的功能。
## 依赖关系
确保在调用renderDeviceManager之前已经加载了
- jQuery
- Bootstrap JS
- dfido2-lib.js
- fido2-ui-sdk.js