128 lines
3.0 KiB
Markdown
128 lines
3.0 KiB
Markdown
# 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
|