在 Keycloak 里集成 GitHub 登录
Keycloak 是一个开源的身份认证系统,可以对接各种第三方的身份认证提供者,之前有展示过如何对接微信登录、企业微信登录,今天再展示一下如何对接 GitHub 登录,并将通过 GitHub 登录的用户链接到 Keycloak 已有有用户。
下面详解 GitHub 登录方式的集成:
首先,在 GitHub 里申请一个应用
其实就是在 GitHub 里备个案,拿到 appid 和 appsecret,以便后续填写在 Keycloak 的 GitHub 身份提供者配置中。
打开浏览器浏览至:https://github.com/settings/developers 开发者设置页面,新建一个 OAuth 应用:
复制 ClientID 和 ClientSecret:
然后,在 Keycloak 控制面板添加一个 GitHub 身份提供者
添加提供程序,并选择 GitHub:
随后,填入上一步申请好的 Client ID 和 Client Secret。Account Linking Only 可以根据需求来勾选:
复制上图中的重定向 URI,并将它更新到第一步申请的 GitHub OAuth 应用中:
接着,找一个用户验证链接是否有效
比如,我在 Keycloak 中的用户详情,是之前通过微信登录的,可以看到身份提供者是微信:
打开浏览器并浏览至:https://uniheart.pa-ca.me/keycloak/login,选择通过 GitHub 登录:
注意到,登录过程中,会提醒,已经有邮箱为 jeff.tian@outlook.com 的用户了,如果要链接到该用户,需要通过邮箱验证。
验证完后,就会登录成功,跳回到登录前的应用 https://uniheart.pa-ca.me/keycloak/login,并进入登录态,即拿到 access token。
这时,再加到 Keycloak 控制面板,找到该用户,即可看到该用户的身份提供者,除了微信,还多了一个 GitHub。
这说明 GitHub 登录集成成功了!