談談基于Github的OAuth2第三方登錄實現(xiàn)
上篇文章介紹了OAuth2.0的基本知識,這篇文章將介紹怎么通過github來實現(xiàn)OAuth2.0第三方登錄
注冊O(shè)AuthApp
https://github.com/settings/developers
1.新建OAuth App

2.填寫應用信息
homepageURL為主頁地址,Authorization Callback URL為回調(diào)地址,當用戶同意授權(quán)后,會回調(diào)該地址,并將ActionCode拼接到地址后面。

3.注冊完畢獲取clientId與client Secret

代碼實現(xiàn)
github對外接口
上一篇文章說過,OAuth2.0的授權(quán)碼模式要調(diào)用兩次認證服務器來獲取accessToken。github對于OAuth2.0的授權(quán)碼登錄提供了以下接口:

這些接口的傳參可以參照官方文檔:授權(quán) OAuth 應用 - GitHub 文檔,我們可以用這些接口來實現(xiàn)OAuth2.0的登錄。
https://docs.github.com/zh/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#web-application-flow
前端主頁面
使用了github提供的獲取授權(quán)碼Code的接口,clientId是上面創(chuàng)建OAuthApp后顯示的,redirect_uri代表回調(diào)地址。用戶進行授權(quán)成功后,會跳轉(zhuǎn)到該uri地址,并且在地址后面拼接授權(quán)碼code。

后端回調(diào)接口
回調(diào)地址拿到授權(quán)碼code后,通過授權(quán)碼code來交換得到accessToken,然后再用accessToken獲取用戶信息

運行效果
1.前端頁面授權(quán)登錄

2.GitHub用戶名與密碼登錄

3.GitHub授權(quán)登錄

4.回調(diào)顯示用戶信息
