Latest posts by 折月煮酒 (see all)
- 轻量级网站评论系统Commento安装教程 - 2024年8月25日
- CMS超级播放器artplayer、dplayer跳过片头片尾源码 - 2024年8月19日
- Google Adsense 申请记录 - 2024年8月14日
现象描述:目前多数的软件都提供了手机版和网页版,当在网页版登录时,只需要利用手机扫码二维码即可登录;
原理分析:
整个过程主要为以下三部分:(服务器a指浏览器对应的服务器,浏览器b指手机对应的服务器)
1、获取二维码(浏览器向服务器a请求二维码图片)
2、扫描二维码(手机扫描二维码获取到二维码的相关信息,并将信息传给服务器b)
3、登录(服务器b利用获得的信息和用户的信息去更改服务器a的数据)
注意:在整个过程中浏览器是不停地调用服务器a的,当服务器a中的信息被更改时,浏览器能快速获取。
常见的解决方案:
涉及到三个服务器:浏览器端服务器 redis服务器 手机端服务器
1、浏览器请求二维码
2、浏览器端服务器 生成一个唯一标识符(uuid),并将该uuid作为redis的键存储在redis中,并设置过期时间,生成二维码(二维码中含有该uuid的值)
3、浏览器获得二维码
此后浏览器一直携带该uuid去请求浏览器端服务器直到登录成功或者二维码过期
4、手机扫描二维码,获取到二维码中的uuid,并将该uuid传给手机端服务器
5、手机端服务器拿到uuid后调用redis接口将该uuid的值设置为用户的登录信息(因为手机端已经登录,所以可以获取到用户的信息)
6、当redis中有用户的登录信息后,浏览器请求浏览器服务器就校验为登录
在实际中在扫描后还需要确认登录才能真正登录。
整体概述:
将已登录的手机端用户信息同步到浏览器端服务器上,两者之间用户标识就是生成的uuid,中间的纽带就是redis
原文链接:https://www.mrgaocloud.com/?p=1482,转载请注明出处。
评论0