跳转到正文

English core guides · 历史记录保留中文

通行密钥 ​

当前完成范围 ​

通行密钥通过 WebAuthn 使用设备生物识别或安全密钥登录。服务端保存公钥,不保存设备上的私钥。

当前模板提供已有账号的登录入口。Better Auth 提供注册凭据接口,但模板尚未完成面向用户的凭据注册、列表、撤销和恢复界面。新用户必须保留密码、邮箱验证码或第三方登录中的可用入口,不能把通行密钥作为唯一注册方式。

域名配置 ​

websiteConfig.auth.passkey 控制插件与入口。apps/api/lib/auth.ts 从 APP_ORIGIN 提取 rpID,使用站点品牌作为 rpName。本地可使用 localhost;线上使用 HTTPS 和与凭据一致的域名。

不同域名注册的凭据不能默认互用。更换站点域名、预发布子域或 APP_ORIGIN 后,需要重新检查注册和登录。

登录流程 ​

apps/app/components/auth/passkey-login.tsx 检查 window.PublicKeyCredential,用户点击后调用 auth.signIn.passkey(),成功后刷新会话。

当前没有启用自动填充式凭据选择。如果后续添加,需要持久显示带 autocomplete="email webauthn" 的输入框,并先检测浏览器是否支持相应模式。

数据与错误 ​

凭据表在 db/schema/passkey.ts,包括公钥、凭据 ID、计数器、设备类型和传输方式。扩展字段不代表插件会自动填充,应核对写入逻辑。

取消设备提示、超时、不支持 WebAuthn、凭据不匹配和网络故障需要分别处理。取消不是认证成功;浏览器不支持时要保留其他登录方式。

验收 ​

补齐凭据管理界面后,分别测试首次注册、已绑定设备登录、跨设备同步、撤销后拒绝登录、取消提示及账号恢复。真实设备验收完成前,模块状态仍是部分接入。

供语言模型读取:llms.txt · llms-full.txt
采用 MIT 许可证。