用户身份验证
选择客户登录方式,并用 MFA 与平台角色保护独立的运营控制台。
已根据启动模板提交
7580470验证。
完成配置后,客户可以注册、验证邮箱、登录、找回密码并进入组织工作区;可信员工则通过同时要求平台管理员角色和 MFA 的独立控制台工作。
Sushi SaaS 使用 Better Auth 提供邮箱密码和双因素认证。Google OAuth 已接入但需要你启用。组织成员、邀请和基于查询参数的工作区切换器已经实现;嵌套团队、自定义角色和带组织 slug 的路由尚未提供。
选择你的认证界面
| 选择 | 默认行为 | 你要配置的内容 |
|---|---|---|
| 邮箱密码 | 含邮箱验证与密码找回 | 生产环境的 Resend 凭据与发信域名 |
| Google OAuth | 填写凭据后启用 | Google client ID、secret 与 callback URL |
| CAPTCHA | 默认启用 Turnstile | 生产密钥,或明确设置 NEXT_PUBLIC_CAPTCHA_ENABLED=false |
| 客户 2FA | 可在账户设置中启用 | 决定是否对普通客户强制要求 |
| 管理端访问 | 独立 admin_ro / admin_rw 角色并强制 MFA | 独立域名和尽量小的运营人员名单 |
配置 BETTER_AUTH_SECRET、BETTER_AUTH_URL、NEXT_PUBLIC_AUTH_BASE_URL 与 Web URL。生产认证还需要 Redis 分布式限流和可信 IP 来源。Resend 发送验证/找回邮件;本地未配置供应商或设置 AUTH_DEV_EMAIL_LINKS=true 时可安全记录链接,该开关在生产会被拒绝。
身份与授权
- Better Auth 字符串 ID 是登录身份,应用的
user.uuid是公开领域身份。 - 邮箱与 provider 组合唯一,但绝不按邮箱授权。
- 组织角色(
owner、admin、member)决定操作;套餐 entitlement 决定功能和额度。 - 路由必须先认证再访问数据;客户端只按稳定错误码显示翻译,不渲染服务端原始消息。
独立管理应用
pnpm dev:admin 在 3001 端口启动。将 apps/admin 以独立来源和认证 URL 单独部署。用 pnpm admin:promote 提升运营人员;admin_ro 只读,admin_rw 可写。管理端强制 MFA,写操作生成审计记录。不要把组织角色当作平台管理员角色。
上线前测试注册、验证、登录、找回、启用时的 Google 回调、会话撤销、MFA 注册以及两种管理权限。成功不只是“页面能打开”:未认证请求不得读取私有数据,admin_ro 不得写入,而每次 admin_rw 修改都应出现在审计记录中。部署和操作员配置请遵循专门的管理控制台配置与访问指南。
相关内容: 更改身份供应商、会话、组织角色或 MFA 政策前,请阅读 Sushi SaaS 的认证机制。