Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

GitHub OAuth 配置指南

⚠️ 已退役(2026-07):硬编码的 /api/auth/github* / /api/auth/gitee* 路由与 .envGITHUB_* / 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

  1. 打开 https://github.com/settings/developers
  2. 点击 New OAuth App
  3. 填写:
    • Application name: Auth Service(或你的应用名)
    • Homepage URL: https://www.ai-as.cc
    • Authorization callback URL: https://auth.ai-as.cc/api/auth/github/callback
  4. 点击 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