LogoLaunchSaaS

身份验证

在 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(可选)

  1. 前往 GitHub 开发者设置
  2. 点击"OAuth Apps"→"New OAuth App"
  3. 填写注册表单:
    • 应用名称:你的应用名称
    • 主页 URLhttp://localhost:3000(或你的生产环境 URL)
    • 授权回调 URLhttp://localhost:3000/api/auth/callback/github
  4. 点击"Register application"
  5. 生成客户端密钥
  6. 添加到你的 .env 文件:
NEXT_PUBLIC_GITHUB_CLIENT_ID="your-client-id"
GITHUB_CLIENT_SECRET="your-client-secret"

为开发和生产环境创建单独的 OAuth 应用。它们需要不同的回调 URL。

4. 配置 Google OAuth(可选)

  1. 前往 Google Cloud Console
  2. 创建新项目或选择现有项目
  3. 前往"凭据"→"创建凭据"→"OAuth 客户端 ID"
  4. 如果提示,配置 OAuth 同意屏幕
  5. 创建 OAuth 客户端 ID:
    • 应用类型:Web 应用程序
    • 已授权的 JavaScript 来源http://localhost:3000
    • 已授权的重定向 URIhttp://localhost:3000/api/auth/callback/google
  6. 添加到你的 .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
  • 电子邮件服务已配置并已验证域名

参考资料

下一步