在 Keycloak 里集成 GitHub 登錄
Keycloak 是一個(gè)開源的身份認(rèn)證系統(tǒng),可以對接各種第三方的身份認(rèn)證提供者,之前有展示過如何對接微信登錄、企業(yè)微信登錄,今天再展示一下如何對接 GitHub 登錄,并將通過 GitHub 登錄的用戶鏈接到 Keycloak 已有有用戶。
基于 keycloak 的關(guān)注公眾號(hào)即登錄功能的設(shè)計(jì)與實(shí)現(xiàn)
下面詳解 GitHub 登錄方式的集成:
首先,在 GitHub 里申請一個(gè)應(yīng)用
其實(shí)就是在 GitHub 里備個(gè)案,拿到 appid 和 appsecret,以便后續(xù)填寫在 Keycloak 的 GitHub 身份提供者配置中。
打開瀏覽器瀏覽至:https://github.com/settings/developers 開發(fā)者設(shè)置頁面,新建一個(gè) OAuth 應(yīng)用:

復(fù)制 ClientID 和 ClientSecret:

然后,在 Keycloak 控制面板添加一個(gè) GitHub 身份提供者
添加提供程序,并選擇 GitHub:

隨后,填入上一步申請好的 Client ID 和 Client Secret。Account Linking Only 可以根據(jù)需求來勾選:

復(fù)制上圖中的重定向 URI,并將它更新到第一步申請的 GitHub OAuth 應(yīng)用中:

接著,找一個(gè)用戶驗(yàn)證鏈接是否有效
比如,我在 Keycloak 中的用戶詳情,是之前通過微信登錄的,可以看到身份提供者是微信:

打開瀏覽器并瀏覽至:https://uniheart.pa-ca.me/keycloak/login,選擇通過 GitHub 登錄:
注意到,登錄過程中,會(huì)提醒,已經(jīng)有郵箱為 [email protected] 的用戶了,如果要鏈接到該用戶,需要通過郵箱驗(yàn)證。

驗(yàn)證完后,就會(huì)登錄成功,跳回到登錄前的應(yīng)用 https://uniheart.pa-ca.me/keycloak/login,并進(jìn)入登錄態(tài),即拿到 access token。

這時(shí),再加到 Keycloak 控制面板,找到該用戶,即可看到該用戶的身份提供者,除了微信,還多了一個(gè) GitHub。

這說明 GitHub 登錄集成成功了!
