GitHub 登录
准备工作
你一共需要准备以下内容:
申请一个 GitHub OAuth 应用
在 Authing 控制台填入 GitHub OAuth 应用信息
申请 GitHub OAuth 应用
请点击下面这个卡片,按照官方的说明流程创建一个 Github OAuth 应用:
重要提示,在创建 Github OAuth 应用时填写的 Callback URI 请填写为:https://oauth.authing.cn/oauth/github/redirect
如下图所示:
之后你可以获取到 GitHub OAuth 应用的 Client ID 和 Client Secret:
在 Authing 控制台填入 GitHub OAuth 应用信息
在 Github 创建完 OAuth 应用后请按照下图指示在 Authing 控制台找到 Github 社会化登录配置:
在此需要填入你的 GitHub 应用信息:
Client ID
Client Secret
Redirect:这是你的业务回调域名,和 GitHub OAuth 应用配置的回调链接不一样。比如你的网站域名是 https://example.com , 处理 Authing 回调请求的 url 为 /auth/github/callback , 那么你应该填写为
https://example.com/auth/github/callback
。如果你需要在 OIDC 或 OAuth 应用中单独配置回调链接,此处地址可填入: #。Scopes(可选): 默认情况下,Authing 只会向用户申请基础用户信息(如头像、昵称、邮箱等)的授权,如果你需要更多高级权限,可以勾选上对应的选项。详细说明请见配置登录授权 Scopes。
配置完成后请点击「确定」保存信息。
开始接入
引导用户跳转到 GitHub 授权页
此操作应该在浏览器完成。你可以在 Web 页面上放置一个可点击的按钮或 Logo 链接到上面的链接以便用户可以点击登录。
开发者需要拼接以下 URL:https://github.com/login/oauth/authorize/?client_id=<Github_Client_ID>&state=<Authing_UserPool_ID>
Github_Client_ID: GtiHub OAuth 应用 ID。
Authing_UserPool_ID: Authing 用户池 ID。
如 Authing 官方用户池的 GitHub 授权链接如下:https://github.com/login/oauth/authorize/?client_id=5446d8d6083f27fed5b4&state=59f86b4832eb28071bdd9214
访问上述链接,你应该可以看到类似以下的页面:
处理 Authing 回调请求
上一步用户同意授权之后,会先跳转到 Authing 服务器,之后 Authing 会携带用户信息跳转到开发者在 Authing 控制台中配置的业务回调链接,并附带以下 Get 请求参数:
参数 | 说明 |
code | 错误或成功代码,200 为成功,非 200 为失败 |
message | 成功或错误信息 |
data | userInfo,若 code 为非 200 不返回此参数 |
bindOAuth | 是否是登录操作, 无此参数或此参数为 |
部分浏览器和 Web Server 在 URL 过长的情况下有可能出现 404,如 ASP.NET,这个时候需要修改一下配置,具体方式请见这个 StackOverflow 回答。
data 数据示例:
以下是使用 JavaScript 从 URL 参数中获取用户数据的代码:
完成接入
恭喜你,此时已经接入了 GitHub 登录。获取到用户信息之后,你可以得到登录凭证 token,你可以在后续的 API 请求中携带上此 token, 然后在后端接口中根据此 token 区分不同用户,详情请见验证 token。
Last updated