扫码登录的典型流程图
哈德韦
共 3033字,需浏览 7分钟
· 2022-08-25
关于扫码登录,之前写过几篇文章以及发过相关的视频。
@startuml
autonumber
actor "用户" as User
participant "浏览器" as Browser
participant "手机端" as Mobile
participant "服务端" as Server #orange
activate User
User -> Browser: 输入 URL
activate Browser
Browser -> Server: 请求 csrf token
activate Server
Server -> Browser: 返回 csrf token
deactivate Server
Browser -> Server: 带上 csrf token 请求生成二维码
activate Server
Browser -> Server: 开始轮询二维码的状态
Server -> Server: 生成二维码
note right of Server: 并记录该二维码的状态是等待扫描
Server -> Browser: 返回待扫描
Server -> Browser: 返回二维码
deactivate Server
Browser --> User
User -> Mobile: 进入 APP,点击扫码
activate Mobile
Mobile -> Server: 通知已扫描
activate Server
Server -> Server: 更新二维码状态为已扫描
deactivate Server
Mobile -> Mobile: 展示确认登录页面
Mobile --> User
deactivate Mobile
Browser -> Server: 轮询二维码状态
activate Server
Server -> Browser: 返回已扫描,等待确认
Browser -> Browser: 更新 UI,显示已扫描
Browser --> User
deactivate Server
User -> Mobile: 点击确认登录
activate Mobile
activate Server
Mobile -> Server: 通知二维码的状态为已确认
Server -> Mobile: 通知用户已登录
deactivate Mobile
Server -> Server: 更新二维码的状态为已确认
deactivate Server
Browser -> Server : 轮询二维码状态
activate Server
Server -> Browser: 返回已确认,并带上用户登录 cookie
Browser -> Browser: 更新 cookie
Browser -> Server: 使用 cookie 请求用户信息
Server -> Browser: 返回用户信息
Browser -> Browser: 存储用户信息到 local storage
Browser --> User: 展示用户登录态页面
@enduml
@startuml
autonumber
actor "用户" as User
participant "浏览器" as Browser
participant "手机端" as Mobile
participant "服务端" as Server #orange
activate User
User -> Browser: 输入 URL
activate Browser
Browser -> Server: 请求 csrf token
activate Server
Server -> Browser: 返回 csrf token
deactivate Server
Browser -> Server: 带上 csrf token 请求生成二维码
activate Server
Browser -> Server: 开始轮询二维码的状态
Server -> Server: 生成二维码
note right of Server: 并记录该二维码的状态是等待扫描
Server -> Browser: 返回待扫描
Server -> Browser: 返回二维码
deactivate Server
Browser --> User
User -> Mobile: 进入 APP,点击扫码
activate Mobile
Mobile -> Server: 通知已扫描
activate Server
Server -> Server: 更新二维码状态为已扫描
deactivate Server
Mobile -> Mobile: 展示确认登录页面
Mobile --> User
deactivate Mobile
Browser -> Server: 轮询二维码状态
activate Server
Server -> Browser: 返回已扫描,等待确认
Browser -> Browser: 更新 UI,显示已扫描
Browser --> User
deactivate Server
deactivate User
Browser -> Server: 轮询二维码状态
activate Server
Server -> Browser: 返回已扫描,待确认
deactivate Server
deactivate Browser
...
Server -> Server: 超时,更新二维码状态为超时
Browser -> Server: 轮询二维码状态
activate Browser
activate Server
Server -> Browser: 返回已超时
Browser -> Browser: 进入刷新二维码流程
@enduml
图片源码如下:
[*] --> 已生成
已生成 --> 已超时 : 超时未扫码
已生成 : 等待用户扫码
已生成 -> 已扫码 : 用户扫码
已扫码 : 等待用户点击确认
已扫码 -> 已确认: 用户点击确认
已确认 : 创建 session,进入登录态
已扫码 --> 已超时: 超时未确认
已确认 -> [*] : 服务器端可以删除二维码状态存储了
已超时 -> [*] : 服务器端可以删除二维码状态存储了
若有收获,就点个赞吧
评论
了解加密货币到加密货币的互换
1、什么是加密货币互换?加密货币到加密货币的互换是指以现行市场汇率将一种加密货币直接兑换为另一种加密货币。与需要法定货币存款和较长流程的传统交易所不同,加密货币到加密货币的互换可以无缝地促进交换。掉期在提高加密货币的流动性和效率方面发挥着重要作用。该功能使用户能够将他们的加密货币与钱包中的其他代币进
区块链头条
0
【第129期】程序员的新宠:三款终端工具,让你告别Xshell!
概述 WindTerm:跨平台的SSH利器 首先介绍的是WindTerm,这是一款使用C语言开发的跨平台SSH客户端。它不仅完全免费,而且没有商业使用的限制。WindTerm支持SSH v2、Telnet、Raw Tcp等协议,而且性能出色,甚至超过了FinalShell和Electerm。功能
前端微服务
0
上班的时候,有一群摸鱼搭子非常重要...
上班的时候,有一群摸鱼搭子非常重要!一到上班时间,他们就从四面八方涌进群里冒泡...从八卦聊到股市、从职场聊到乌X兰局势,偶尔还会复读、相亲、battle...然后,下午6点钟准时消失不见...所以你要不要加入我们一起摸鱼?我们有北京、上海、深圳、广州、杭州、武汉、成都、南京等8个城市的摸鱼群,还有
产品经理日记
0
周四002 瑞超:同样落寞的境遇——北雪平vs埃尔夫斯堡
上赛季最终排名联赛第9的北雪平本赛季伊始表现不佳,4轮战罢他们仅以1胜1平2负的战绩排在倒数第三,这支历史上曾夺得13次联赛冠军、6次杯赛冠军老牌劲旅,正如英格兰赛场上的一众百年俱乐部,在低谷中不断探索着出路。球队主教练安德烈亚斯·阿尔姆曾是AIK索尔纳及赫根队的主教练,他于今年年初刚刚拿起球队教鞭
产品与体验
0
日本影山优佳最新杂志照,展现充满透明感的美丽
今天的图文分享的是影山优佳的杂志写真。元日向坂46的影山优佳,登上了写真杂志《周刊FLASH》5/7和5/14合并号的封面。影山优佳是日本艺人、女演员、前偶像。身高155厘米。2001年5月8日出生于东京都。2023年7月从组合日向坂46毕业,之后作为演员活跃的影山优佳,在《周刊FLAS
python教程
0
盘点一个使用超级鹰识别验证码并自动登录的案例
点击上方“Python共享之家”,进行关注回复“资源”即可获赠Python学习资料今日鸡汤江上几人在,天涯孤棹还。大家好,我是皮皮。一、前言前几天在Python钻石交流群【静惜】问了一个Python实现识别验证码并自动登录的问题,提问截图如下:验证码的截图如下所示:二、实现过程这里大家激烈的探讨,【
IT共享之家
0
朋友,你也不想一个人孤孤单单的上班吧?
上班的时候,有一群摸鱼搭子非常重要!一到上班时间,他们就从四面八方涌进群里冒泡...从八卦聊到股市、从职场聊到乌X兰局势,偶尔还会复读、相亲、battle...然后,下午6点钟准时消失不见...所以你要不要加入我们一起摸鱼?我们有北京、上海、深圳、广州、杭州、武汉、成都、南京等8个城市的摸鱼群,还有
产品经理日记
0
美团社招一面,比预想的简单。
面试题大全:www.javacn.site面试这件事就很玄学,有时候你觉得他可能很难,但面完之后竟然出奇的顺利,问的问题你都会;有些你觉得这次面试应该很简单,但去了之后就被问懵了,所以面试这件事有很多一部分运气的成分。所以说,在没有 Offer 之前就是多准备、楞怂面,主打一个大力出奇迹。这不,逛牛
Java中文社群
0