指纹登陆
不能实现,WebAuthn 基于 Credential Management API 所以不能跨浏览器使用
// 类似 ssh 登录 github,得有账户才能使用 ssh
// 将凭证导出,实现跨浏览器/设备导入?需要能构造 PublicKeyCredential 才能使用 Credential Management API 同步
// FIDO2
WebAuthn 可以多设备使用
使用指纹代替密码来验证用户。
- 优点是安全。
- 缺点是需要硬件和平台支持。
注册
- WebAuthn 创建 rawId 和"公钥"
- Credential Management API 或者服务器保存 name 和 rawId 以及公钥
- 服务器生成 jwt token(对应用户的登录状态)给客户端
登陆
- 通过 Credential Management API 或者服务器获取 rawId
- WebAuthn 获取"公钥"发生给服务器验证
- 服务器发送 jwt token 给客户端
API 请求
- token 保存在 local storage
- 放在 http header 请求服务器
- 服务器验证 jwt token 并找到对应的用户
- 响应客户端