最近公司的app[A]需要提供三方登錄的功能供公司其他app[B]來(lái)快捷登錄肩豁。
三方授權(quán)顯然想到的就是OAuth2.0協(xié)議標(biāo)準(zhǔn)以及微信第三方登錄。這里附上?對(duì)OAuth 2.0理解缤谎。
1渗鬼、用戶在[B]的登錄頁(yè)點(diǎn)擊使用[A]三方登錄刹衫;
2斟冕、[B]拉起[A]口糕,AUrlScheme://xxx/xx?state=STATE&appid=APPID&scope=SCOPE;
3磕蛇、[A]根據(jù)傳過來(lái)的appid景描、state和授權(quán)作用域scope請(qǐng)求接口[接口①]來(lái)拉取授權(quán)信息十办;
4、拉取到授權(quán)信息后超棺,[A]顯示授權(quán)頁(yè)面向族;
5、等待用戶授權(quán)说搅;
6炸枣、用戶在[A]的授權(quán)頁(yè)面進(jìn)行授權(quán)操作虏等;
7弄唧、用戶授權(quán)操作之后,[A]拉起[B]霍衫,并將參數(shù)ErrCode候引、code和state傳給[B],BUrlScheme://xxx/xx?state=STATE&errcode=ERRCODE&code=CODE;
8敦跌、[B]拿到回調(diào)后澄干,先驗(yàn)證state值,再根據(jù)臨時(shí)票據(jù)code去調(diào)取接口[接口②]換取授權(quán)令牌access_token柠傍,參數(shù)appid麸俘、appSecret、code和grant_type惧笛;
9从媚、[A]服務(wù)器將access_token、openid等數(shù)據(jù)返回給[B];
10患整、[B]再拿access_token和openid向[A]服務(wù)器請(qǐng)求接口[接口③]獲取用戶的信息拜效。