指纹登陆

不能实现,WebAuthn 基于 Credential Management API 所以不能跨浏览器使用
// 类似 ssh 登录 github,得有账户才能使用 ssh
// 将凭证导出,实现跨浏览器/设备导入?需要能构造 PublicKeyCredential 才能使用 Credential Management API 同步

// FIDO2

WebAuthn 可以多设备使用

使用指纹代替密码来验证用户。
  • 优点是安全。
  • 缺点是需要硬件和平台支持。

注册
  1. WebAuthn 创建 rawId 和"公钥"
  2. Credential Management API 或者服务器保存 name 和 rawId 以及公钥
  3. 服务器生成 jwt token(对应用户的登录状态)给客户端

登陆
  1. 通过 Credential Management API 或者服务器获取 rawId
  2. WebAuthn 获取"公钥"发生给服务器验证
  3. 服务器发送 jwt token 给客户端

API 请求
  1. token 保存在 local storage
  2. 放在 http header 请求服务器
  3. 服务器验证 jwt token 并找到对应的用户
  4. 响应客户端