掃碼登錄流程

要實(shí)現(xiàn)網(wǎng)頁版的掃碼登陸,用戶必須先要請(qǐng)求一個(gè)登陸的二維碼。Web端的服務(wù)器收到用戶申請(qǐng)登陸二維碼的請(qǐng)求后,會(huì)隨機(jī)生成一個(gè)uuid(這個(gè)uuid作為頁面的唯一標(biāo)識(shí)符),并且會(huì)將這個(gè)uuid當(dāng)做一個(gè)鍵值對(duì)的key存入后臺(tái)Redis。
用戶請(qǐng)求到二維碼后,就開始拿出手機(jī),打開相應(yīng)的App掃描二維碼。掃描過程中手機(jī)會(huì)將uuid和手機(jī)端登陸后獲得的token信息一起提交到手機(jī)端服務(wù)器。
手機(jī)已經(jīng)登錄了微信,微信已經(jīng)保存了用戶的信息,token是用戶信息的唯一標(biāo)識(shí)。
手機(jī)端服務(wù)器會(huì)先拿token信息判斷這個(gè)用戶是否合法,是否已經(jīng)正常登陸。如果判斷已經(jīng)正常登陸,那么會(huì)將這個(gè)用戶的userId和提交過來的uuid當(dāng)做一個(gè)鍵值對(duì)(uudi-userId)存入Redis。
二維碼登陸頁會(huì)不停的輪詢是否登陸成功。這邊的依據(jù)就是Redis中存在uuid-userId鍵值對(duì)。如果這個(gè)鍵值對(duì)已經(jīng)存在,說明手機(jī)端已經(jīng)掃碼登陸過。
Web端服務(wù)器一旦判斷到手機(jī)端已經(jīng)掃碼登陸過,就可以拿著userId進(jìn)行登陸。并將必要的用戶信息和token信息返回Web前端。至此Web端登陸成功。

