GitHub OAuth 配置指南
⚠️ 已退役(2026-07):硬编码的
/api/auth/github*//api/auth/gitee*路由与.env的GITHUB_*/GITEE_*配置已移除。 GitHub/Gitee 登录现统一走配置化 IdP(tenant_oidc_providers表 +/api/auth/sso/*路径)。 配置方式见docs/TENANT_UNIFIED_IDP.md与「SSO 配置」管理页。 本文档保留作历史参考(GitHub OAuth App 创建步骤仍适用,凭据改为填入 SSO 配置页的 OAuth2 IdP 表单)。
GitHub 第三方登录需要创建一个 GitHub OAuth App 并配置凭据。
步骤
1. 创建 GitHub OAuth App
- 打开 https://github.com/settings/developers
- 点击 New OAuth App
- 填写:
- Application name:
Auth Service(或你的应用名) - Homepage URL:
https://www.ai-as.cc - Authorization callback URL:
https://auth.ai-as.cc/api/auth/github/callback
- Application name:
- 点击 Register application
2. 获取凭据
创建后页面显示:
- Client ID: 复制保存(形如
Iv1.1234abcd...) - Client Secret: 点击
Generate a new client secret,复制保存(只在此时显示一次)
3. 配置到服务器
在 ECS 上编辑 /opt/auth-service/.env,添加:
GITHUB_CLIENT_ID=你的Client ID
GITHUB_CLIENT_SECRET=你的Client Secret
GITHUB_CALLBACK_URL=https://auth.ai-as.cc/api/auth/github/callback
然后重启服务:
systemctl restart auth-service
4. 验证
打开 https://auth.ai-as.cc/admin/ → 登录页应显示 “GitHub 登录” 按钮 → 点击跳转到 GitHub 授权 → 授权后自动回到管理后台。
工作原理
用户点击"GitHub登录"
→ GET /api/auth/github(后端生成 state,跳转 GitHub 授权页)
→ 用户在 GitHub 授权
→ GitHub 回调 GET /api/auth/github/callback?code=xxx&state=xxx
→ 后端用 code 换 access_token → 获取 GitHub 用户信息
→ 首次登录自动创建用户(用户名 = GitHub 用户名)
→ 分配默认 user 角色
→ 签发 JWT token,重定向回前端
→ 前端从 URL 参数读 token,写入登录态
故障排查
| 问题 | 原因 | 解决 |
|---|---|---|
| “GitHub OAuth 未配置” | .env 里 GITHUB_CLIENT_ID 为空 | 按上述步骤配置 |
| 回调页报错 | callback URL 不匹配 | 确认 GitHub App 里的 callback = https://auth.ai-as.cc/api/auth/github/callback |
| 登录后空白页 | token 回传前端失败 | 检查 OIDC_ISSUER 是否 = https://auth.ai-as.cc |