1. 程式人生 > 其它 >掃碼登入實現原理

掃碼登入實現原理

原理解釋:

網頁端+伺服器

(1)使用者開啟網站的登入頁面的時候,向瀏覽器的伺服器傳送獲取登入二維碼的請求。伺服器收到請求後,隨機生成一個uuid,將這個id作為key值存入redis伺服器,同時設定一個過期時間,在過期後,使用者登入二維碼需要進行重新整理重新獲取。

(2)同時,將這個key值和本公司的驗證字串合在一起,通過二維碼生成介面,生成一個二維碼的圖片,然後,將二維碼圖片和uuid一起返回給使用者瀏覽器。

(3)瀏覽器拿到二維碼和uuid後,會每隔一秒向瀏覽器傳送一次,登入是否成功的請求。請求中攜帶有uuid作為當前頁面的識別符號。

手機端+伺服器:

(4)使用者拿出手機掃描二維碼,就可以得到一個驗證資訊和一個uuid 。由於手機端已經進行過了登入,在訪問手機端的伺服器的時候,引數中都回攜帶一個使用者的token,手機端伺服器可以從中解析到使用者的userId 。手機端將解析到的資料和使用者token一起作為引數,向伺服器傳送驗證登入請求(這裡的伺服器是手機伺服器,手機端的伺服器跟網頁端伺服器不是同一臺伺服器)。伺服器收到請求後,首先對比引數中的驗證資訊,確定是否為使用者登入請求介面。如果是,返回一個確認資訊給手機端

(5)手機端收到返回後,將登入確認框顯示給使用者。使用者確認是進行的登入操作後,手機再次傳送請求。伺服器拿到uuId和userId後,將使用者的userid作為value值存入redis中以uuid作為key的鍵值對中。

登入成功:

(6)瀏覽器再次傳送請求的時候,瀏覽器端的伺服器就可以得到一個使用者Id,並呼叫登入的方法,聲成一個瀏覽器端的token,再瀏覽器再次傳送請求的時候,將使用者資訊返回給瀏覽器,登入成功。