鍍金池/ 問答/網(wǎng)絡(luò)安全/ 第三方登錄的常規(guī)做法

第三方登錄的常規(guī)做法

網(wǎng)站準備接入第三方登錄,比如qq.登錄,但是遇到一些問題:

1 流程

網(wǎng)站登錄頁
點擊qq 按鈕跳到qq授權(quán)頁,頁面地址帶有回調(diào)地址
用戶同意并授權(quán)
qq 服務(wù)器調(diào)用回調(diào)地址,訪問我們的服務(wù)器,并發(fā)送code
服務(wù)器根據(jù)code appid 等獲取token
根據(jù)token 獲得用戶名
登錄成功,服務(wù)器設(shè)置登錄狀態(tài)
瀏覽器刷新

問題是最后一步,瀏覽器怎么知道登錄成功了?因為后繼的操作都是服務(wù)端進行的。

2 申請接入入口
qq 有騰訊開放平臺 qq 互聯(lián) 到底哪里申請?
qq 互聯(lián)對網(wǎng)站接入需填回地址,但開放平臺不用。

3 多平臺支持
后續(xù)我們的移動端也會接入,似乎申請入口,提交信息都不一樣,為保證同一個用戶用同樣的帳號登錄網(wǎng)站和移動端能識別為同一個人,需要union id,這個如何申請?

4 移動端登陸流程是怎樣的?和網(wǎng)站一樣嗎?需要回調(diào)地址嗎?

回答
編輯回答
冷眸

1.首次qq登陸獲取openid(union_id)后,需要用戶輸入密碼用戶名登陸一次,然后保存openid。以后每次第三方授權(quán)登陸中獲取了open_id后就可以判斷登陸了,拿openid到數(shù)據(jù)庫查對應(yīng)的用戶,然后登錄跳轉(zhuǎn)。

2.qq的要申請qq互聯(lián)的,微信是微信開放平臺

3.union id需要把一個開發(fā)者賬號下的所有app信息(app_id,key,應(yīng)用名等)和開發(fā)者賬號,公司名,公司營業(yè)執(zhí)照,icp備案發(fā)生給connect@qq.com申請開通

4.移動端和pc的不一樣,一般移動端要接入sdk,使用sdk來獲取openid(unionid),例如友盟。

2017年9月18日 11:22
編輯回答
離人歸

騰訊登錄不是前端拿到code,用ajax發(fā)送登錄請求給后臺?后臺拿到code去騰訊拿openId,然后幫我們登錄,返回請求成功給前端,就是登錄成功啦。

2017年12月14日 21:16