掃碼登錄的典型流程圖
關(guān)于掃碼登錄,之前寫過幾篇文章以及發(fā)過相關(guān)的視頻。

@startumlautonumberactor "用戶" as Userparticipant "瀏覽器" as Browserparticipant "手機(jī)端" as Mobileparticipant "服務(wù)端" as Server #orangeactivate UserUser -> Browser: 輸入 URLactivate BrowserBrowser -> Server: 請求 csrf tokenactivate ServerServer -> Browser: 返回 csrf tokendeactivate ServerBrowser -> Server: 帶上 csrf token 請求生成二維碼activate ServerBrowser -> Server: 開始輪詢二維碼的狀態(tài)Server -> Server: 生成二維碼note right of Server: 并記錄該二維碼的狀態(tài)是等待掃描Server -> Browser: 返回待掃描Server -> Browser: 返回二維碼deactivate ServerBrowser --> UserUser -> Mobile: 進(jìn)入 APP,點擊掃碼activate MobileMobile -> Server: 通知已掃描activate ServerServer -> Server: 更新二維碼狀態(tài)為已掃描deactivate ServerMobile -> Mobile: 展示確認(rèn)登錄頁面Mobile --> Userdeactivate MobileBrowser -> Server: 輪詢二維碼狀態(tài)activate ServerServer -> Browser: 返回已掃描,等待確認(rèn)Browser -> Browser: 更新 UI,顯示已掃描Browser --> Userdeactivate ServerUser -> Mobile: 點擊確認(rèn)登錄activate Mobileactivate ServerMobile -> Server: 通知二維碼的狀態(tài)為已確認(rèn)Server -> Mobile: 通知用戶已登錄deactivate MobileServer -> Server: 更新二維碼的狀態(tài)為已確認(rèn)deactivate ServerBrowser -> Server : 輪詢二維碼狀態(tài)activate ServerServer -> Browser: 返回已確認(rèn),并帶上用戶登錄 cookieBrowser -> Browser: 更新 cookieBrowser -> Server: 使用 cookie 請求用戶信息Server -> Browser: 返回用戶信息Browser -> Browser: 存儲用戶信息到 local storageBrowser --> User: 展示用戶登錄態(tài)頁面@enduml

@startumlautonumberactor "用戶" as Userparticipant "瀏覽器" as Browserparticipant "手機(jī)端" as Mobileparticipant "服務(wù)端" as Server #orangeactivate UserUser -> Browser: 輸入 URLactivate BrowserBrowser -> Server: 請求 csrf tokenactivate ServerServer -> Browser: 返回 csrf tokendeactivate ServerBrowser -> Server: 帶上 csrf token 請求生成二維碼activate ServerBrowser -> Server: 開始輪詢二維碼的狀態(tài)Server -> Server: 生成二維碼note right of Server: 并記錄該二維碼的狀態(tài)是等待掃描Server -> Browser: 返回待掃描Server -> Browser: 返回二維碼deactivate ServerBrowser --> UserUser -> Mobile: 進(jìn)入 APP,點擊掃碼activate MobileMobile -> Server: 通知已掃描activate ServerServer -> Server: 更新二維碼狀態(tài)為已掃描deactivate ServerMobile -> Mobile: 展示確認(rèn)登錄頁面Mobile --> Userdeactivate MobileBrowser -> Server: 輪詢二維碼狀態(tài)activate ServerServer -> Browser: 返回已掃描,等待確認(rèn)Browser -> Browser: 更新 UI,顯示已掃描Browser --> Userdeactivate Serverdeactivate UserBrowser -> Server: 輪詢二維碼狀態(tài)activate ServerServer -> Browser: 返回已掃描,待確認(rèn)deactivate Serverdeactivate Browser...Server -> Server: 超時,更新二維碼狀態(tài)為超時Browser -> Server: 輪詢二維碼狀態(tài)activate Browseractivate ServerServer -> Browser: 返回已超時Browser -> Browser: 進(jìn)入刷新二維碼流程@enduml

圖片源碼如下:
[*] --> 已生成已生成 --> 已超時 : 超時未掃碼已生成 : 等待用戶掃碼已生成 -> 已掃碼 : 用戶掃碼已掃碼 : 等待用戶點擊確認(rèn)已掃碼 -> 已確認(rèn): 用戶點擊確認(rèn)已確認(rèn) : 創(chuàng)建 session,進(jìn)入登錄態(tài)已掃碼 --> 已超時: 超時未確認(rèn)已確認(rèn) -> [*] : 服務(wù)器端可以刪除二維碼狀態(tài)存儲了已超時 -> [*] : 服務(wù)器端可以刪除二維碼狀態(tài)存儲了
若有收獲,就點個贊吧
評論
圖片
表情
