QQ 第三方登錄
目的:
優(yōu)化用戶登錄體驗(yàn)
流程:
1554641512868.png
按流程 :
用戶方面:
用戶 點(diǎn)擊 QQ登錄 按鈕
用戶 掃碼二維碼
用戶 得到 響應(yīng)結(jié)果
服務(wù)器端:
事先 在騰訊QQ注冊(cè), 獲取到和網(wǎng)站 對(duì)應(yīng)的 url
-
從前端 獲取 code(這個(gè) code 是 掃碼后 騰訊提供的)
服務(wù)器內(nèi)部 用 code 向 騰訊請(qǐng)求 獲取 Token
服務(wù)器內(nèi)部 用 Token 向 騰訊請(qǐng)求 獲取 OpenID
通過(guò) OpenID 經(jīng)過(guò) 響應(yīng)邏輯, 返回給前端 對(duì)應(yīng)數(shù)據(jù)
響應(yīng)邏輯
這里, 第六步的邏輯響應(yīng), 比較復(fù)雜:
1554642498995.png
- 獲取到OpenID 查詢 數(shù)據(jù)庫(kù)中 該 用戶 是否綁定了 我方 賬戶
已綁定, 則返回 給 前端 用戶的相關(guān)信息, 前端 幫助 用戶 跳轉(zhuǎn)到 對(duì)應(yīng)頁(yè)面
-
未綁定, 則加密 OpenID 返回給前端, 前端 收到之后, 引導(dǎo)用戶跳轉(zhuǎn)到 注冊(cè)界面,
前端 將 用戶 填寫(xiě)的 用戶名箱蝠、密碼、access_token 返回給后端
-
后端 通過(guò) 用戶名 判斷 用戶是否注冊(cè)過(guò)
已注冊(cè)蔬将, 則 綁定 這個(gè)用戶 和 對(duì)應(yīng)的 OpenID
-
未注冊(cè)
新建 用戶
綁定 這個(gè)用戶 和 對(duì)應(yīng)的 OpenID