安全
00 / 00
双因素认证 (2FA)
基于 TOTP 的双因素认证配置与集成
双因素认证 (2FA)
项目通过 Better Auth 的 twoFactor 插件支持基于 TOTP 的双因素认证。
配置
通过环境变量控制是否开启:
AUTH_ENABLE_TWO_FACTOR=trueBetter Auth 插件配置位于 products/muse/packages/auth/src/index.ts。默认开启 2FA;如果项目不需要这项能力,在产品 env 或部署平台变量中设置 AUTH_ENABLE_TWO_FACTOR=false。
用户流程
- 用户在设置页选择「启用双因素认证」
- 系统生成 TOTP 密钥,前端展示二维码
- 用户用 Authenticator App 扫描二维码
- 输入 App 显示的 6 位验证码完成验证
- 系统同时生成一组备份码,用户需妥善保存
数据库模型
Drizzle schema 中的 twoFactor 表存储 2FA 数据:
export const twoFactor = pgTable("twoFactor", {
id: text("id").primaryKey(),
userId: text("userId").notNull(),
secret: text("secret").notNull(),
backupCodes: text("backupCodes").notNull(),
});客户端集成
客户端使用 twoFactorClient() 插件,已在 products/muse/apps/web/src/lib/auth/client.ts 中注册。前端可以通过 Better Auth 客户端 API 调用 twoFactor.enable、twoFactor.verify、twoFactor.disable 等方法。
想和其他创造者交流?
这篇文档有问题?