OAuth 2.0 登录
配置 GitHub、Google 等第三方 OAuth 登录
Mix Space 支持通过第三方 OAuth 账号登录后台,免去记忆密码的麻烦。目前支持 GitHub 和 Google 两种 OAuth 服务商。
OAuth 登录基于 better-auth 实现,不走 Clerk 等第三方认证服务,所有数据存储在你自己的数据库中。
前置条件
在配置 OAuth 之前,请确保:
- 后端服务已正常运行
- 前端和后端都已配置好 HTTPS(OAuth 回调要求 HTTPS)
- 你有 GitHub 或 Google 的开发者账号
配置 GitHub 登录
创建 GitHub OAuth 应用
- 前往 GitHub Developer Settings
- 点击「New OAuth App」
- 填写以下信息:
| 字段 | 填写内容 |
|---|---|
| Application name | 你的站点名称 |
| Homepage URL | 前端地址(如 https://example.com) |
| Authorization callback URL | 后台提示的回调地址 |
- 创建完成后,记下 Client ID
- 点击「Generate a new client secret」,记下 Client Secret
在后台配置
登录后台,进入「设定 → 登录方式」,在 GitHub 部分填入 Client ID 和 Client Secret,保存。
测试并绑定
在前端登录页面点击 GitHub 登录按钮,完成授权后会提示是否将此账号设为站长。确认后即可通过 GitHub 登录后台。
配置 Google 登录
创建 Google OAuth 客户端
- 前往 Google Cloud Console
- 创建一个项目或选择已有项目
- 配置「OAuth 权限请求页面」:
- 已获授权的网域填写你的根域名
- API 范围选择非敏感范围的三项(email、profile、openid)
- 创建「OAuth 客户端 ID」,选择「Web 应用」:
| 字段 | 填写内容 |
|---|---|
| 已获授权的 JavaScript 来源 | 前端地址 |
| 已获授权的重定向 URI | 后台提示的回调地址 |
- 记下 Client ID 和 Client Secret
在后台配置
登录后台,进入「设定 → 登录方式」,在 Google 部分填入 Client ID 和 Client Secret,保存。
测试并绑定
在前端登录页面点击 Google 登录按钮,完成授权后绑定站长身份。
获取回调地址
在后台「设定 → 登录方式」页面的 OAuth 部分,每个服务商旁边会显示对应的回调地址(Callback URL)。创建 OAuth 应用时需要将此地址填入。
回调地址与你的前端地址和后端地址相关。如果更换了域名,需要同步更新 OAuth 应用的回调地址配置。
绑定站长身份
首次通过 OAuth 登录时,系统会提示你是否将此 OAuth 账号设为站长(Owner)。确认后,该 OAuth 账号就拥有了完整的管理权限。
如果你后续需要更换绑定的 OAuth 账号,可以在后台「设定 → 账号与安全」中操作。
同时使用多种登录方式
你可以同时启用 GitHub 和 Google 登录。登录页面会显示所有已启用的登录方式,用户可以选择任意一种登录。
如果同时配置了密码登录和 OAuth 登录,建议在「设定 → 认证安全设置」中考虑是否禁用密码登录以提高安全性。详见 账号与安全。
常见问题
回调后提示错误
- 确认回调地址完全一致(包括末尾的斜杠)
- 确认
ALLOWED_ORIGINS环境变量中包含前端域名 - 确认 OAuth 应用的 Client ID 和 Secret 正确
GitHub 提示「Application suspended」
- 检查 GitHub OAuth 应用的状态,可能因为长时间未使用被暂停
- 确认 Client Secret 未过期(GitHub Secret 有过期时间设置)
Google 提示「未验证应用」
- 在 Google Cloud Console 中将应用发布为「正式版」
- 或者添加测试用户账号