項(xiàng)目目前沒(méi)有上線,所以暫不考慮微信缸濒、QQ等第三方登錄方式宝惰,采用github第三方登錄植榕。
1.注冊(cè)O(shè)Auth apps,步驟簡(jiǎn)單掌测。注意Authorization callback URL的回調(diào)的填寫(xiě)即可内贮。
2.Request a user's GitHub identity产园,說(shuō)白了,就是要請(qǐng)求github夜郁,要傳入的參數(shù)有
client_id? ??????????剛才注冊(cè)的OAuth APPS里有
redirect_uri? ? ? ?你回調(diào)的網(wǎng)址
scope? ? ? ? ? ? ? ? 傳入user即可
state? ? ? ? ? ? ? ? ? 隨機(jī)傳入一個(gè)值‘1’
例子:https://github.com/login/oauth/authorize?client_id=填注冊(cè)的id&redirect_uri=回調(diào)地址&scope=user&state=1
將此網(wǎng)址什燕,放在你點(diǎn)擊登錄的<a>標(biāo)簽href中即可
3.下圖意思是通過(guò)剛才的操作。重定向到你回調(diào)的網(wǎng)址是竞端,會(huì)返回一個(gè)code和state屎即,你需要做的是
? ?后臺(tái)調(diào)用?https://github.com/login/oauth/access_token?這個(gè)api,傳入client_id
? ?,?client_secret,?code?這三個(gè)參數(shù)事富,可以獲取到 access_token技俐,返回出大概是這個(gè)鬼樣子
? ?access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&token_type=bearer
4.獲取到?access_token?后, 再調(diào)用?
? ?https://api.github.com/user??access_token=<你上一步獲取的>?
? ?這個(gè)API统台,就可以獲取到基本的用戶信息了
? ? (ps:github官網(wǎng)提示不太清楚)
5.在配一些自己后臺(tái)代碼的圖雕擂,獲取網(wǎng)址我用的是OKHTTP,之前的帖子也有說(shuō)過(guò)
? ?(ps:由于剛寫(xiě)好就來(lái)發(fā)帖贱勃,代碼沒(méi)怎么注釋井赌。后期補(bǔ)上,請(qǐng)諒解)
6.最終效果