3.0 KiB
3.0 KiB
FIDO2 UI SDK 修改说明
修改概述
根据需求,对UI SDK进行了以下修改:
- 增加用户ID参数:renderDeviceManager函数现在需要userId参数
- 删除登录功能:移除了登录相关的UI和事件处理
- 简化设备管理:设备操作现在直接使用传入的用户ID
主要修改
1. renderDeviceManager函数
修改前:
Fido2UIManager.renderDeviceManager({
container: '#device-container',
mode: 'modal',
serverUrl: SERVER_URL
});
修改后:
Fido2UIManager.renderDeviceManager({
userId: 'user@example.com', // 新增必需参数
container: '#device-container',
mode: 'modal',
serverUrl: SERVER_URL
});
2. DeviceManager修改
addDevice(): 使用this.config.userId代替从sessionStorage获取用户IDdeleteDevice(): 使用this.config.userId代替从sessionStorage获取用户IDcheckSession(): 简化为始终返回true(假设用户已登录)getUserId(): 返回this.config.userId
3. 删除的功能
- 移除了登录按钮的UI渲染
- 移除了login事件处理器
- 移除了session检查逻辑
- 移除了getSessionData方法
4. 错误处理
如果未提供userId参数,renderDeviceManager会抛出错误:
'userId is required for device management operations'
使用示例
模式1:模态框模式
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:独立页面模式
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
}
});
注意事项
- userId参数是必需的:不提供userId会导致错误
- 假设用户已登录:不再进行登录状态检查
- 向后兼容:此修改可能会影响现有集成,需要更新调用代码
- 删除的API:renderLogin函数仍然存在,但如果不再需要可以移除
测试
可以使用test-device-manager.html文件测试修改后的功能。
依赖关系
确保在调用renderDeviceManager之前已经加载了:
- jQuery
- Bootstrap JS
- dfido2-lib.js
- fido2-ui-sdk.js