談一談掃碼登錄原理

来源:https://www.cnblogs.com/88223100/archive/2023/08/31/On-the-Principle-of-Scan-Code-Login.html
-Advertisement-
Play Games

今天給大家介紹下掃碼登錄功能是怎麼設計的。 掃碼登錄功能主要分為三個階段:待掃描、已掃描待確認、已確認。 整體流程圖如圖。 下麵分階段來看看設計原理。 1、待掃描階段 首先是待掃描階段,這個階段是 PC 端跟服務端的交互過程。 每次用戶打開PC端登陸請求,系統返回一個唯一的二維碼ID,並將二維碼ID ...


 

今天給大家介紹下掃碼登錄功能是怎麼設計的。

掃碼登錄功能主要分為三個階段:待掃描、已掃描待確認、已確認

整體流程圖如圖。

下麵分階段來看看設計原理。

1、待掃描階段

首先是待掃描階段,這個階段是 PC 端跟服務端的交互過程。

每次用戶打開PC端登陸請求,系統返回一個唯一的二維碼ID,並將二維碼ID的信息繪製成二維碼返回給用戶。

這裡的二維碼ID一定是唯一的,後續流程會將二維碼ID跟身份信息綁定,不唯一的話就會造成你登陸了其他用戶的賬號或者其他用戶登陸你的賬號。

此時在 PC 端會啟動一個定時器,輪詢查詢二維碼是否被掃描

如果移動端未掃描的話,那麼一段時間後二維碼將會失效。

這個階段的交互過程如下圖所示。

圖片

2、已掃描待確認階段

第二個階段是已掃描待確認階段,主要是移動端跟服務端交互的過程。

首先移動端掃描二維碼,獲取二維碼 ID,然後將手機端登錄的憑證(token)和 二維碼 ID 作為參數發送給服務端

此時的手機在之前已經是登錄的,不存在沒登錄的情況。

服務端接受請求後,會將 token 與二維碼 ID 關聯,然後會生成一個臨時token,這個 token 會返回給移動端,臨時 token 用作確認登錄的憑證。

PC 端的定時器,會輪詢到二維碼的狀態已經發生變化,會將 PC 端的二維碼更新為已掃描,請在手機端確認。

這裡為什麼要有手機端確認的操作?

假設沒有確認這個環節,很容易就會被壞人攔截token去冒充登錄。所以二維碼掃描一定要有這個確認的頁面,讓用戶去確認是否進行登錄。

另外,二維碼掃描確認之後,再往用戶app或手機等發送登錄提醒的通知,告知如果不是本人登錄的,則建議用戶立即修改密碼。

這個階段是交互過程如下圖所示。

圖片

3、已確認

掃碼登錄的最後階段,用戶點擊確認登錄,移動端攜帶上一步驟中獲取的臨時 token訪問服務端。

服務端校對完成後,會更新二維碼狀態,並且給 PC 端生成一個正式的 token。

後續 PC 端就是持有這個 token 訪問服務端。

這個階段是交互過程如下圖所示。

圖片

以上就是整個掃碼登錄功能的詳細設計!

 

作者|架構工具棧

本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/On-the-Principle-of-Scan-Code-Login.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 8月16-18日,第14屆中國資料庫技術大會 (DTCC2023) 在北京召開。在18日的DTCC2023“大數據平臺架構與應用案例(上)”專場,天翼雲科技有限公司資料庫產品線總監葉小朋分享了天翼雲資料庫在多雲場景下的探索,以及一站式資料庫多雲管理平臺TeleDB-DCP的產品能力和落地實踐。 ...
  • 8月30日,由 NineData 和 SelectDB 共同舉辦的主題為“實時數據驅動,引領企業智能化數據管理”的線上聯合發佈會,圓滿成功舉辦!雙方聚焦於實時數據倉庫技術和數據開發能力,展示如何通過強大的生態開發相容性,對接豐富的大數據生態產品,助力企業快速開展數據分析業務,共同探索實時數據驅動的未... ...
  • ![file](https://img2023.cnblogs.com/other/3195851/202308/3195851-20230831114702799-1091292653.jpg) 提到數據處理,經常有人把它簡稱為“ETL”。但仔細說來,數據處理經歷了ETL、ELT、XX ETL(例 ...
  • ![file](https://img2023.cnblogs.com/other/2685289/202308/2685289-20230831101757216-1368442529.png) 作者 | 李晨 編輯 | Debra Chen 數據準備對於推動有效的自助式分析和數據科學實踐至關重要 ...
  • 一、尋找合適的線上預覽Excel的js庫 我: 線上預覽Excel文件有哪些好用的js庫 ChatGPT: 有幾個好用的JavaScript庫可以用來在網頁上實現線上預覽Excel文件。以下是一些常見且功能強大的庫: SheetJS (xlsx.js): 這是一個功能強大的庫,可以在網頁上實現Exc ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 問題描述:最近工作中出現一個需求,純前端下載 Excel 數據,並且有的下載內容很多,這時需要給下載增加一個 loading 效果。 代碼如下: // utils.js const XLSX = require('xlsx') // 將一 ...
  • # React Native 封裝Toast ## 前言 > 使用react native的小伙伴都知道,官方並未提供輕提示組件,只提供了ToastAndroid API,顧名思義,只能再安卓環境下使用,對於ios就愛莫能助,故此,只能通過官方的核心組件,自行封裝,實現Toast功能 ## 實現 * ...
  • 本文主要介紹 AI 繪圖開源工具 Stable Diffusion WebUI 的 API 開啟和基本調用方法,通過本文的閱讀,你將瞭解到 stable-diffusion-webui 的基本介紹、安裝及 API 環境配置;文生圖、圖生圖、局部重繪、後期處理等 API 介面調用;圖像處理開發中常用到... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...