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

面試官:二維碼掃碼登錄是個啥原理

開發 前端
在日常生活中,二維碼出現在很多場景,比如超市支付、系統登錄、應用下載等等。了解二維碼的原理,可以為技術人員在技術選型時提供新的思路。

在日常生活中,二維碼出現在很多場景,比如超市支付、系統登錄、應用下載等等。了解二維碼的原理,可以為技術人員在技術選型時提供新的思路。對于非技術人員呢,除了解惑,還可以引導他更好地辨別生活中遇到的各種二維碼,防止上當受騙。

二維碼,大家再熟悉不過了

購物掃個碼,吃飯掃個碼,坐公交也掃個碼

在掃碼的過程中,大家可能會有疑問:這二維碼安全嗎?會不會泄漏我的個人信息?更深度的用戶還會考慮:我的系統是不是也可以搞一個二維碼來推廣呢?

這時候就需要了解一下二維碼背后的技術和邏輯了!

二維碼最常用的場景之一就是通過手機端應用掃描PC或者WEB端的二維碼,來登錄同一個系統。比如手機微信掃碼登錄PC端微信,手機淘寶掃碼登錄PC端淘寶。那么就讓我們來看一下,二維碼登錄是怎么操作的!

二維碼登錄的本質

二維碼登錄本質上也是一種登錄認證方式。既然是登錄認證,要做的也就兩件事情!

  1.  告訴系統我是誰
  2.  向系統證明我是誰

比如賬號密碼登錄,賬號就是告訴系統我是誰, 密碼就是向系統證明我是誰; 比如手機驗證碼登錄,手機號就是告訴系統我是誰,驗證碼就是向系統證明我是誰;

那么掃碼登錄是怎么做到這兩件事情的呢?我們一起來考慮一下

手機端應用掃PC端二維碼,手機端確認后,賬號就在PC端登錄成功了!這里,PC端登錄的賬號肯定與手機端是同一個賬號。不可能手機端登錄的是賬號A,而掃碼登錄以后,PC端登錄的是賬號B。

所以,第一件事情,告訴系統我是誰,是比較清楚的!

通過掃描二維碼,把手機端的賬號信息傳遞到PC端,至于是怎么傳的,我們后面再說。

第二件事情,向系統證明我是誰。掃碼登錄過程中,用戶并沒有去輸入密碼,也沒有輸入驗證碼,或者其他什么碼。那是怎么證明的呢?

有些同學會想到,是不是掃碼過程中,把密碼傳到了PC端呢?但這是不可能的。因為那樣太不安全的,客戶端也根本不會去存儲密碼。我們仔細想一下,其實手機端APP它是已經登錄過的,就是說手機端是已經通過登錄認證。所以說只要掃碼確認是這個手機且是這個賬號操作的,其實就能間接證明我誰。

認識二維碼

那么如何做確認呢?我們后面會詳細說明,在這之前我們需要先認識一下二維碼!在認識二維碼之前我們先看一下一維碼!

所謂一維碼,也就是條形碼,超市里的條形碼--這個相信大家都非常熟悉,條形碼實際上就是一串數字,它上面存儲了商品的序列號。

二維碼其實與條形碼類似,只不過它存儲的不一定是數字,還可以是任何的字符串,你可以認為,它就是字符串的另外一種表現形式,

在搜索引擎中搜索二維碼,你可以找到很多在線生成二維碼的工具網站,這些網站可以提供字符串與二維碼之間相互轉換的功能.

在左邊的輸入框就可以輸入你的內容,它可以是文本、網址,文件........。然后就可以生成代表它們的二維碼。

你也可以把二維碼上傳,進行”解碼“,然后就可以解析出二維碼代表的含義。

系統認證機制

認識了二維碼,我們了解一下移動互聯網下的系統認證機制。

前面我們說過,為了安全,手機端它是不會存儲你的登錄密碼的。但是在日常使用過程中,我們應該會注意到,只有在你的應用下載下來后,第一次登錄的時候,才需要進行一個賬號密碼的登錄, 那之后呢?即使這個應用進程被殺掉,或者手機重啟,都是不需要再次輸入賬號密碼的,它可以自動登錄。

其實這背后就是一套基于token的認證機制,我們來看一下這套機制是怎么運行的,

  1.  賬號密碼登錄時,客戶端會將設備信息一起傳遞給服務端
  2.  如果賬號密碼校驗通過,服務端會把賬號與設備進行一個綁定,存在一個數據結構中,這個數據結構中包含了賬號ID,設備ID,設備類型等等 
  1. const token = {  
  2.   acountid:'賬號ID',  
  3.   deviceid:'登錄的設備ID',  
  4.   deviceType:'設備類型,如 iso,android,pc......',  

然后服務端會生成一個token,用它來映射數據結構,這個token其實就是一串有著特殊意義的字符串,它的意義就在于,通過它可以找到對應的賬號與設備信息。

  1.  客戶端得到這個token后,需要進行一個本地保存,每次訪問系統API都攜帶上token與設備信息。
  2.  服務端就可以通過token找到與它綁定的賬號與設備信息,然后把綁定的設備信息與客戶端每次傳來的設備信息進行比較, 如果相同,那么校驗通過,返回AP接口響應數據, 如果不同,那就是校驗不通過拒絕訪問

從前面這個流程,我們可以看到,客戶端不會也沒必要保存你的密碼,相反,它是保存了token。可能有些同學會想,這個token這么重要,萬一被別人知道了怎么辦。實際上,知道了也沒有影響, 因為設備信息是唯一的,只要你的設備信息別人不知道, 別人拿其他設備來訪問,驗證也是不通過的。

可以說,客戶端登錄的目的,就是獲得屬于自己的token。

那么在掃碼登錄過程中,PC端是怎么獲得屬于自己的token呢?不可能手機端直接把自己的token給PC端用!token只能屬于某個客戶端私有,其他人或者是其他客戶端是用不了的。在分析這個問題之前,我們有必要先梳理一下,掃描二維碼登錄的一般步驟是什么樣的。這可以幫助我們梳理清楚整個過程。

掃描二維碼登錄的一般步驟

大概流程

 

  1.  掃碼前,手機端應用是已登錄狀態,PC端顯示一個二維碼,等待掃描
  2.  手機端打開應用,掃描PC端的二維碼,掃描后,會提示"已掃描,請在手機端點擊確認"
  3.  用戶在手機端點擊確認,確認后PC端登錄就成功了

可以看到,二維碼在中間有三個狀態, 待掃描,已掃描待確認,已確認。那么可以想象

  1.  二維碼的背后它一定存在一個唯一性的ID,當二維碼生成時,這個ID也一起生成,并且綁定了PC端的設備信息
  2.  手機去掃描這個二維碼
  3.  二維碼切換為 已掃描待確認狀態, 此時就會將賬號信息與這個ID綁定
  4.  當手機端確認登錄時,它就會生成PC端用于登錄的token,并返回給PC端

好了,到這里,基本思路就已經清晰了,接下來我們把整個過程再具體化一下

二維碼準備

按二維碼不同狀態來看, 首先是等待掃描狀態,用戶打開PC端,切換到二維碼登錄界面時。

  1. PC端向服務端發起請求,告訴服務端,我要生成用戶登錄的二維碼,并且把PC端設備信息也傳遞給服務端
  2.  服務端收到請求后,它生成二維碼ID,并將二維碼ID與PC端設備信息進行綁定
  3.  然后把二維碼ID返回給PC端
  4.  PC端收到二維碼ID后,生成二維碼(二維碼中肯定包含了ID)
  5.  為了及時知道二維碼的狀態,客戶端在展現二維碼后,PC端不斷的輪詢服務端,比如每隔一秒就輪詢一次,請求服務端告訴當前二維碼的狀態及相關信息

二維碼已經準好了,接下來就是掃描狀態

掃描狀態切換

  1.  用戶用手機去掃描PC端的二維碼,通過二維碼內容取到其中的二維碼ID
  2.  再調用服務端API將移動端的身份信息與二維碼ID一起發送給服務端
  3.  服務端接收到后,它可以將身份信息與二維碼ID進行綁定,生成臨時token。然后返回給手機端
  4.  因為PC端一直在輪詢二維碼狀態,所以這時候二維碼狀態發生了改變,它就可以在界面上把二維碼狀態更新為已掃描

那么為什么需要返回給手機端一個臨時token呢?臨時token與token一樣,它也是一種身份憑證,不同的地方在于它只能用一次,用過就失效。

在第三步驟中返回臨時token,為的就是手機端在下一步操作時,可以用它作為憑證。以此確保掃碼,登錄兩步操作是同一部手機端發出的,

狀態確認

最后就是狀態的確認了。

  1.  手機端在接收到臨時token后會彈出確認登錄界面,用戶點擊確認時,手機端攜帶臨時token用來調用服務端的接口,告訴服務端,我已經確認
  2.  服務端收到確認后,根據二維碼ID綁定的設備信息與賬號信息,生成用戶PC端登錄的token
  3.  這時候PC端的輪詢接口,它就可以得知二維碼的狀態已經變成了"已確認"。并且從服務端可以獲取到用戶登錄的token
  4.  到這里,登錄就成功了,后端PC端就可以用token去訪問服務端的資源了

掃碼動作的基礎流程都講完了,有些細節還沒有深入介紹,

比如二維碼的內容是什么?

  •  可以是二維碼ID
  •  可以是包含二維碼ID的一個url地址

在掃碼確認這一步,用戶取消了怎么處理?這些細節都留給大家思考

總結

我們從登陸的本質觸發,探索二維碼掃碼登錄是如何做到的

  1.  告訴系統我是誰
  2.  向系統證明我誰

在這個過程中,我們先簡單講了兩個前提知識,

  •  一個是二維碼原理
  •  一個是基于token的認證機制。

然后我們以二維碼狀態為軸,分析了這背后的邏輯: 通過token認證機制與二維碼狀態變化來實現掃碼登錄.

需要指出的是,前面的講的登錄流程,它適用于同一個系統的PC端,Web端,移動端。

平時我們還有另外一種場景也比較常見,那就是通過第三方應用來掃碼登錄,那么這種通過第三方應用掃碼登錄又是什么原理呢?

感興趣的同學可以思考研究一下。 

 

責任編輯:龐桂玉 來源: 馬哥Linux運維
相關推薦

2024-03-07 07:59:37

2014-03-05 14:41:55

二維碼登錄

2023-08-08 14:16:07

二維碼開發鴻蒙

2024-06-26 08:46:45

2021-10-26 10:29:45

掃碼登錄功能

2013-01-30 12:16:49

二維碼NFC近場通訊

2013-11-26 09:54:02

2013-12-03 10:32:52

2013-10-29 09:46:05

二維碼

2023-05-09 20:41:00

網絡詐騙網絡安全

2020-04-01 10:06:41

二維碼技術服務端

2020-12-24 18:48:36

二維碼二進制條形碼

2023-11-17 09:07:51

.NET生成二維碼識別二維碼

2013-11-19 16:06:39

2017-02-21 09:17:46

二維碼漏洞

2023-11-17 15:44:06

C++庫生成二維碼

2018-03-05 18:39:25

2011-12-06 16:40:45

二維碼快拍二維碼靈動快拍

2024-06-03 10:33:08

2024-11-20 13:00:02

點贊
收藏

51CTO技術棧公眾號

精品一区二区三区免费观看 | 久久资源在线| 欧美一二三区精品| 欧美丰满熟妇xxxxx| 97se亚洲| 欧美精品一区二区三区在线| 国产三级免费观看| 99视频一区二区| 日本精品免费| 91精品一区二区三区综合| 超在线视频97| 97人澡人人添人人爽欧美| 午夜激情一区二区| 国模杨依粉嫩蝴蝶150p| 欧美a一区二区| 岛国一区二区三区高清视频| 奇米影视777在线欧美电影观看| 亚洲激情视频在线观看| 国产一二三在线观看| 国产精品国产三级国产普通话99| 一区中文字幕在线观看| 亚洲中字在线| 国产精品国产精品国产专区不卡| 国产中文字幕一区二区三区| 欧美高清无遮挡| 成人日韩视频| 最新中文字幕亚洲| 成人av观看| 亚洲国产成人在线播放| www免费视频观看在线| 黑人欧美xxxx| 亚州av中文字幕在线免费观看| 国产精品久久久久影院亚瑟| 男人操女人免费| 国产午夜精品福利| 免费看国产黄色片| 国产精品午夜久久| 网上成人av| 亚洲精品综合在线| 阳光姐妹淘韩国版| 亚洲成人av在线电影| 性欧美18+| 天天色综合天天| 精品成人一区二区三区免费视频| 香蕉成人伊视频在线观看| 热国产热中文视频二区| 国产精品国产a| 日本最黄视频| 国产毛片视频网站| 亚洲日本激情| 久久久婷婷一区二区三区不卡| 欧美区亚洲区| 3d精品h动漫啪啪一区二区| 久久久久亚洲| 国产精品视频500部| 日韩一级在线| 国产精品h视频| 成人国产电影网| 免费黄色一级网站| 一区二区久久久| 欧美18xxxxx| 欧美一级日韩一级| heyzo高清国产精品| 国产亚洲欧洲高清一区| 97精品资源在线观看| 欧美精品在线看| 天堂成人娱乐在线视频免费播放网站| 国产精品高精视频免费| 欧美片第1页综合| 在线视频福利一区| 久久免费偷拍视频| julia京香一区二区三区| 欧美日在线观看| 日韩精品亚洲人成在线观看| 国产亚洲欧洲高清| 久久av中文| 欧美一区二区三区在线播放| 国产乱人伦偷精品视频免下载| 国产三级三级三级看三级| 五月婷婷综合在线| 碰碰在线视频| 欧美在线视频在线播放完整版免费观看 | 日韩av影院在线观看| 国产一区2区在线观看| 日本精品久久久久久久| 亚洲一区欧美激情| 天堂在线资源视频| 欧美美女bb生活片| 7777精品| 色狠狠久久av五月综合| 国产精品国产自产拍高清av王其| 免费一级在线观看| 中文在线不卡视频| 日韩久久久久| 高清无码一区二区在线观看吞精| 亚洲视频免费看| www.综合网.com| 国产欧美日韩高清| 成人一级片在线观看| 日韩二区三区| 不卡毛片在线看| 久久国产99| 亚洲精品一区二区| 日韩综合中文字幕| 美女视频一区免费观看| 成色在线视频| 中文字幕日韩精品在线观看| 中文字幕人成人乱码| 国产精品久久久久久久乖乖| 在线观看视频一区二区| 一区二区免费| 在线视频一区观看| 欧美吞精做爰啪啪高潮| 欧美日韩一本| 国产资源第一页| 欧美日韩综合色| 国产欧美日韩视频在线| 国产日韩欧美精品在线观看| 精品视频在线免费看| 日韩高清影视在线观看| 人人妻人人澡人人爽欧美一区双 | 国产精品久久一区| 国产精品一级黄| 精华区一区二区三区| 69国产精品成人在线播放| 国产一区在线精品| 91露出在线| 国产在线98福利播放视频| 国产偷国产偷亚洲高清人白洁| 成人超碰在线| 国语精品中文字幕| 精品久久久久久久久国产字幕| 精品国产亚洲一区二区三区| 亚洲成人午夜在线| 欧美日韩国产免费一区二区| 国产最新精品| 久久久亚洲影院你懂的| 米奇777在线欧美播放| 在线国产小视频| 欧美国产中文字幕| 成人性生交大片免费看中文 | 狠狠v欧美ⅴ日韩v亚洲v大胸| 欧美贵妇videos办公室| 国产99一区视频免费| 爱啪视频在线观看视频免费| 免费一区二区三区| 欧美性xxxxx极品少妇| 99久久影视| 天堂v视频永久在线播放| 国产精品男人爽免费视频1| 亚洲欧洲国产日本综合| 久久精品色播| 爱爱永久免费视频| 欧美一级视频免费在线观看| 国产欧美精品一区| 日韩三级av| 黄色av资源| 国产精品视频一区二区三区四 | 欧美sm一区| 国产精品12p| 亚洲精品视频免费在线观看| 麻豆久久久久久久| 深夜成人影院| 欧美狂野激情性xxxx在线观| 国产亚洲精品美女久久久久久久久久| 蜜臀a∨国产成人精品| 在线中文免费视频| 深夜福利成人| 亚洲区在线播放| 成人性生交大片免费看中文网站| 欧洲成人一区| 亚洲少妇第一页| 欧美一级bbbbb性bbbb喷潮片| 中文字幕av一区二区三区免费看| 国产欧美三级电影| 最大av网站| 国产精品成人一区二区三区| 欧美高清www午色夜在线视频| 免费日韩精品中文字幕视频在线| 污污网站在线看| 国产一区二区三区播放| 色偷偷噜噜噜亚洲男人的天堂| 2023国产精品自拍| 国产精品一在线观看| 国产理论电影在线观看| 日韩欧美精品在线不卡| 一个人www欧美| 中文字幕色av一区二区三区| 99久久久久国产精品| av大片在线| 免费看日本毛片| 国产精品入口夜色视频大尺度| 欧美在线播放高清精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 电影在线观看一区二区| 国产h色视频在线观看| 国产一区二区不卡视频在线观看| 亚洲激情在线观看视频免费| 久久精品水蜜桃av综合天堂| 91成人国产|