国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

面試官:如何實現(xiàn)掃碼登錄功能?

開發(fā) 前端
掃碼登錄場景想必我們都不陌生——很多PC端的網站都提供了掃碼登錄的功能,無需在網頁上輸入任何賬號和密碼,只需要通過手機上的APP,如微信、淘寶、QQ等等,使用掃描功能,掃描網頁上的二維碼,確認登錄,就可以完成網頁端登錄。

[[431128]]

真實面試小場景:

經過八股和算法的交鋒,老三松了口氣,都hold住了。只見面試官微微一笑,“其實,我真正想問的是……你覺得掃碼登錄應該怎么實現(xiàn)。”

老三:“啊……這個,哦……那個,這個就這么,然后……額……嗯……”

面試官:“了解了,回去等通知吧。”

完……

好了,鋪墊結束,進入我們今天的主題,掃碼登錄功能該如何實現(xiàn)?

掃碼登錄場景

掃碼登錄場景想必我們都不陌生——很多PC端的網站都提供了掃碼登錄的功能,無需在網頁上輸入任何賬號和密碼,只需要通過手機上的APP,如微信、淘寶、QQ等等,使用掃描功能,掃描網頁上的二維碼,確認登錄,就可以完成網頁端登錄。

掃碼登錄QQ郵箱

掃碼登錄分析

我們來分析一下,掃碼登錄,其實涉及到三種角色,需要解決兩個問題。

三種角色

很明顯,掃碼登錄當中涉及到的三種角色:PC端、手機端、服務端。

三端

相關的設計都要圍繞這三端來展開,具體的設計其實就是每一端應該完成什么功能?應該怎么實現(xiàn)?端和端應該如何交互?

兩個問題

掃碼登錄本質上是一種特殊的登錄認證方式,我們面對的是兩個問題

  • 手機端如何完成認證
  • PC端如何完成登錄

如果用普通的賬號密碼方式登錄認證,PC端通過賬號密碼完成認證,然后服務端給PC端同步返回token key之類的標識,PC端再次請求服務端,需要攜帶token key,用于標識和證明自己登錄的狀態(tài)。

服務端響應的時候,需要對token key進行校驗,通過則正常響應;校驗不通過,認證失敗;或者token過期,PC端需要再次登錄認證,獲取新的token key。

賬號/密碼登錄過程

現(xiàn)在換成了掃碼登錄:

  • 認證不是通過賬號密碼了,而是由手機端掃碼來完成
  • PC端沒法同步獲取認證成功之后的憑據,必須用某種方式來讓PC端獲取認證的憑據。

掃碼登錄實現(xiàn)

手機端如何完成認證

二維碼怎么生成

二維碼和超市里的條形碼類似,超市的條形碼實際是一串數字,上面存儲了商品的序列號。

二維碼的內容就比較自由,里面不止可以存數字,還可以存任何的字符串。我們可以認為,它就是字符的另外一種表現(xiàn)形式。

下面我通過一個網站把文字轉成了二維碼:

文字轉二維碼

所以,我們手機掃碼這個過程,其實是對二維碼的解碼,獲取二維碼中包含的數據。

那么二維碼怎么生成呢?

首先,二維碼是展示在我們的PC端,所以生成這個操作應該由PC端去請求服務端,獲取相應的數據,再由PC端生成這個二維碼。

二維碼包含什么呢?

二維碼在我們這個場景里面是一個重要的媒介,服務端必須給這個數據生成惟一的標識作為二維碼ID,同時還應該設置過期的時間。PC端根據二維碼ID等數據生成二維碼。

二維碼生成

同時,服務端也應該保存二維碼的一些狀態(tài):未掃描、已成功、已失效。

APP認證機制

我們還得認識一下基于APP的移動互聯(lián)網認證機制。

首先,手機端一般是不會存儲登錄密碼的,我們我們發(fā)現(xiàn),只有裝載APP,第一次登錄的時候,才需要進行基于賬號密碼的登錄,之后即使這個清理掉這個應用進程,甚至手機重啟,都是不需要再次輸入賬號密碼的,它可以自動登錄。

這背后有一套基于token的認證機制,和PC有些類似,但又有一些不同。

APP端登錄認證

  • APP登錄認證的時候除了賬號密碼,還有設備信息
  • 賬號密碼校驗通過,服務端會把賬號與設備進行一個綁定,進行持久化的保存,包含了賬號ID,設備ID,設備類型等等
  • APP每次請求除了攜帶token key,還需要攜帶設備信息。

因為移動端的設備具備唯一性,可以為每個客戶端生成專屬token,這個token也不用過期,所以這就是我們可以一次登錄,長久使用的原理。

手機掃碼干了什么

那這下就清楚了,我們手機掃碼干了兩件事:

  • 掃描二維碼:識別PC端展示的二維碼,獲取二維碼ID

掃描

  • 確認登錄:手機端通過帶認證信息(token key、設備信息)、二維碼信息(二維碼ID)請求服務端,完成認證過程,確認PC端的登錄。

確認登錄

ps: 關于手機掃碼和確認,不是重點,所以這里進行了簡化,一種說法是掃碼時同時向服務端申請一次性臨時token,確認登錄的時候攜帶這個臨時token來訪問服務端。

PC端如何完成登錄

接下來到我們的重頭戲了,手機端完成了它的工作,我們服務端的登錄怎么進入登錄狀態(tài)呢?

我們前面講了,PC端通過token來標識登錄狀態(tài)。那么手機端掃碼確認之后,我們的服務端就應該給PC生成相應的token。

那么,這個PC端又如何獲取它所需的token key,來完成登錄呢?

如何獲取PC token

PC端可以通過獲取二維碼的狀態(tài)來進行相應的響應:

  • 二維碼未掃描:無操作
  • 二維碼已失效:提示刷新二維碼
  • 二維碼已成功:從服務端獲取PC token

獲取二維碼狀態(tài),主要有三種方式:

輪詢

輪詢方式是指客戶端會每隔一段時間就主動給服務端發(fā)送一次二維碼狀態(tài)的查詢請求。

輪詢

長輪詢

長輪詢是指客戶端主動給服務端發(fā)送二維碼狀態(tài)的查詢請求,服務端會按情況對請求進行阻塞,直至二維碼信息更新或超時。當客戶端接收到返回結果后,若二維碼仍未被掃描,則會繼續(xù)發(fā)送查詢請求,直至狀態(tài)變化(已失效或已成功)。

長輪詢

Websocket

Websocket是指前端在生成二維碼后,會與后端建立連接,一旦后端發(fā)現(xiàn)二維碼狀態(tài)變化,可直接通過建立的連接主動推送信息給前端。

Websocket

總結

通過前面的分析,我們已經知道了二維碼掃碼登錄的一些關鍵點,現(xiàn)在我們把這些點串起來,來看一看二維碼掃碼登錄的整體的實現(xiàn)流程。

以常用的輪詢方式獲取二維碼狀態(tài)為例:

掃碼登錄

  • 訪問PC端二維碼生成頁面,PC端請求服務端獲取二維碼ID
  • 服務端生成相應的二維碼ID,設置二維碼的過期時間,狀態(tài)等。
  • PC獲取二維碼ID,生成相應的二維碼。
  • 手機端掃描二維碼,獲取二維碼ID。
  • 手機端將手機端token和二維碼ID發(fā)送給服務端,確認登錄。
  • 服務端校驗手機端token,根據手機端token和二維碼ID生成PC端token
  • PC端通過輪詢方式請求服務端,通過二維碼ID獲取二維碼狀態(tài),如果已成功,返回PC token,登錄成功。

好了,這樣我們一個掃描登錄的功能就設計完成了。

由于博主對移動端的相關認證機制了解不多,如有錯漏,歡迎和博主溝通!

參考:

[1].三種方式實現(xiàn)掃碼登錄:https://forthe77.github.io/2019/05/23/qrcode-scan-login/

[2].二維碼掃碼登錄是什么原理 ?: https://juejin.cn/post/6940976355097985032

一個號稱能文能武,技術水平和外形匹配的Java程序員?;A、實戰(zhàn)、原理、面試,這里都有,關注我,我們一起進步!

 

 

責任編輯:武曉燕 來源: 三分惡
相關推薦

2021-09-08 10:02:56

面試二維碼前端

2020-02-05 14:12:19

微信淘寶開端

2024-09-11 22:51:19

線程通訊Object

2023-11-20 10:09:59

2024-12-06 07:00:00

2024-02-20 14:10:55

系統(tǒng)緩存冗余

2024-10-22 16:39:07

2024-03-01 11:33:31

2024-01-19 14:03:59

Redis緩存系統(tǒng)Spring

2024-04-09 10:40:04

2024-01-26 13:16:00

RabbitMQ延遲隊列docker

2015-08-13 10:29:12

面試面試官

2024-12-25 15:44:15

2021-05-20 08:34:03

CDN原理網絡

2021-05-19 06:07:21

CSS 斜線效果技巧

2024-09-09 15:09:30

2021-05-20 08:54:16

Go面向對象

2024-02-04 10:08:34

2021-12-15 06:58:13

List 集合LinkedHashS

2023-02-16 08:10:40

死鎖線程
點贊
收藏

51CTO技術棧公眾號

国产又黄又猛视频| 高清国产一区| 亚洲国产精品久久久久婷婷老年| 欧美6一10sex性hd| 久久婷婷国产综合精品青草| 久久久精品免费视频| 日韩伦理精品| 亚洲国产精彩中文乱码av在线播放| 国产黄色在线播放| 欧美日韩国产精品| 亚洲男人资源| 欧美大片免费久久精品三p| 福利在线午夜| 亚洲欧洲在线播放| 亚洲三级在线| 韩国精品久久久999| 四虎成人av| 免费看日b视频| 91小视频在线观看| 免费av网址在线| 成人激情免费网站| 自拍日韩欧美| 日本精品视频在线播放| 日韩欧美综合| 久久成人精品一区二区三区| 美女av一区| aa在线观看视频| 欧美精品videos| 国产精品美女久久久久久久久久久 | 99久久99久久精品国产片果冰| 天天色综合6| 精品一区二区精品| 成人美女大片| 欧美xxx.com| 日日干夜夜操s8| 国产综合动作在线观看| 亚洲美腿欧美激情另类| 韩国欧美一区二区| 日韩美女在线| 成人18网址在线观看| 欧美激情第三页| 成人av影院在线| 日本在线成人| 四虎在线免费观看| 91久久久久久久久久久久久| 天天综合天天综合色| 色综合综合网| 伪装者免费全集在线观看| 在线一区二区日韩| 亚洲an天堂an在线观看| 快播亚洲色图| 日韩av在线播放中文字幕| 99色在线视频| 亚洲午夜久久久影院| 中日韩视频在线观看| 国产精品久久久久白浆| 中文字幕成人精品久久不卡| 国产精品亚洲综合色区韩国| 中文字幕国产在线| 2019中文字幕免费视频| 成人国产电影网| a√中文在线观看| 国产一区二区三区免费不卡| 亚洲影院免费观看| 丁香综合av| 国产一区二区精品久| 欧美日韩第二页| av蜜臀在线| 9999精品免费视频| 深夜福利在线视频| 黄色国产精品视频| 精品视频1区2区3区| а√天堂8资源中文在线| av中文字幕在线| 最新中文字幕在线观看| 精品999在线| 91日韩视频在线观看| 久久久久久久久久久免费视频| 久久99久久精品国产| 97netav| 日韩免费av一区二区| 水蜜桃亚洲精品| 欧美日韩激情四射| 欧美成人免费小视频| 天天操天天干天天综合网| 国家队第一季免费高清在线观看| 欧美亚洲国产视频小说| 91成人网在线| 日本一区二区成人| 国产日韩欧美一区| 3d性欧美动漫精品xxxx软件| 黄色直播在线| 亚洲狠狠婷婷综合久久久| 亚洲女人天堂视频| 亚洲国产欧美另类丝袜| 婷婷综合久久一区二区三区| 欧美一区二区视频在线观看2020| 久久最新视频| 另类春色校园亚洲| 国产视频一二区| 国产精品日韩高清| 久久99精品国产99久久6尤物| 亚洲欧美日韩国产成人精品影院| 久草中文综合在线| 国产精品狼人久久影院观看方式| av色综合久久天堂av综合| 久久久久久影视| 看国产成人h片视频| 精品大片一区二区| 草民电影神马电影一区二区| 在线视频毛片| 欧美成人免费在线观看视频| 国产精品日韩在线观看| 国产日韩欧美综合| 不卡毛片在线看| 亚洲va欧美va人人爽| 久久国产精品第一页| 自拍偷拍欧美专区| 六月婷婷在线视频| 日韩亚洲欧美高清| 在线观看免费黄色片| 成人黄色免费网站在线观看| 中文国产成人精品| 91精品国产91热久久久做人人 | 欧美国产国产综合| 色乱码一区二区三区网站| 欧美xxxxxx| 国内小视频在线看| aaa大片免费观看| 国产欧美一区二区三区在线看| 91福利精品第一导航| 综合自拍亚洲综合图不卡区| 中文字幕永久在线不卡| 欧美日韩美女一区二区| 欧美一级大片在线观看| 99热久久这里只有精品| 久久这里只有精品8| 欧美影院精品| 亚洲视频免费| 在线观看不卡一区| 成人黄色av免费在线观看| 麻豆一区二区三区在线观看| 在线观看免费版| 日韩高清影视在线观看| 国内自拍一区| 国产日韩欧美成人| 欧美一区二视频在线免费观看| www.国产亚洲| 日韩一二三四| 亚洲一区二区三区四区电影| 国产成人1区| 国产成人av电影免费在线观看| 亚洲免费在线播放| 日韩精品极品在线观看播放免费视频| 色综合久久悠悠| 久久久亚洲综合网站| 中文字幕第80页| 久久国产精品高清一区二区三区| 欧美大片黄色| 激情黄产视频在线免费观看| 九九久久精品视频| 久久久久久久91| 美臀av在线| 男人的天堂免费在线视频| 国内毛片久久| 国产视频久久| 中文字幕中文字幕在线一区 | 国产一区视频在线| 天天干天天综合| 一本一本久久a久久综合精品| 一区二区在线观看av| 日韩欧美中文字幕公布| 精品国产91亚洲一区二区三区www| 中文av一区二区三区| 欧美日韩免费电影| 青青草国产精品亚洲专区无| 亚洲视频综合在线| 亚洲国产精品久久久| 国内精品小视频| 91精品91久久久中77777老牛| 日韩黄色网址| 婷婷视频在线| 欧美性生活一级| 久久深夜福利| 亚洲色图在线看| 97超级碰在线看视频免费在线看 | 色婷婷热久久| 九九精品久久| 猛男gaygay欧美视频| 日韩mv欧美mv国产网站| 久久综合精品国产一区二区三区| 欧美va亚洲va香蕉在线| www国产无套内射com| 日韩一区亚洲二区| 亚洲剧情一区二区| 在线成年人视频| 亚洲国产成人午夜在线一区| 在线观看日韩羞羞视频| 欧美激情喷水视频| 亚洲精品无码久久久久久|