身份验证
在 LaunchSaaS 中配置 Better Auth,支持社交登录(Google、GitHub)、魔术链接、角色权限控制和安全会话管理。
身份验证
LaunchSaaS 使用 Better Auth 进行身份验证,提供灵活且安全的系统,支持多种身份验证方法、会话管理和基于角色的访问控制。
设置
1. 生成 Better Auth 密钥
BETTER_AUTH_SECRET 是用于加密和生成哈希的随机字符串。使用 VictoryHub 生成一个或运行:
openssl rand -base64 32将其添加到你的 .env 文件:
BETTER_AUTH_SECRET="your-generated-secret-key"2. 配置魔术链接(可选)
要启用无密码的魔术链接身份验证:
NEXT_PUBLIC_MAGIC_LINK_ENABLED=true魔术链接需要电子邮件配置。请参阅电子邮件设置指南。
3. 配置 GitHub OAuth(可选)
- 前往 GitHub 开发者设置
- 点击"OAuth Apps"→"New OAuth App"
- 填写注册表单:
- 应用名称:你的应用名称
- 主页 URL:
http://localhost:3000(或你的生产环境 URL) - 授权回调 URL:
http://localhost:3000/api/auth/callback/github
- 点击"Register application"
- 生成客户端密钥
- 添加到你的
.env文件:
NEXT_PUBLIC_GITHUB_CLIENT_ID="your-client-id"
GITHUB_CLIENT_SECRET="your-client-secret"为开发和生产环境创建单独的 OAuth 应用。它们需要不同的回调 URL。
4. 配置 Google OAuth(可选)
- 前往 Google Cloud Console
- 创建新项目或选择现有项目
- 前往"凭据"→"创建凭据"→"OAuth 客户端 ID"
- 如果提示,配置 OAuth 同意屏幕
- 创建 OAuth 客户端 ID:
- 应用类型:Web 应用程序
- 已授权的 JavaScript 来源:
http://localhost:3000 - 已授权的重定向 URI:
http://localhost:3000/api/auth/callback/google
- 添加到你的
.env文件:
NEXT_PUBLIC_GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET="your-client-secret"如果你正在设置环境,现在可以返回环境配置指南并继续。
功能
LaunchSaaS 身份验证包括:
- 电子邮件/密码 - 传统的注册和登录,带有电子邮件验证
- 社交登录 - Google 和 GitHub OAuth
- 魔术链接 - 无密码身份验证
- 密码重置 - 安全的密码恢复
- 会话管理 - 服务器端会话处理
- 基于角色的访问 - 用户和管理员角色
- Stripe 集成 - 自动客户创建
用户角色
用户角色
所有注册用户的默认角色。有权访问:
- 用户仪表板(
/dashboard) - 个人资料管理
- 订阅管理
管理员角色
管理员的提升权限。有权访问:
- 管理面板(
/admin) - 用户管理
- 所有用户功能
生产清单
投入生产之前,确保:
-
BETTER_AUTH_SECRET是一个强大、唯一的密钥 -
NEXT_PUBLIC_APP_URL设置为你的生产域名 - 社交 OAuth 应用配置了生产环境回调 URL
- 电子邮件服务已配置并已验证域名