需求:PC端(电脑端)扫码登录
原理:
1.PC端登录页面提供二维码
2.PC端与APP端 共同维护一个缓存
3.PC端在规定时间内(最长的等待失效时间),不停的扫描缓存中的登录状态;
若规定内,用户有操作,则进行相应操作的处理;若无操作,则调试二维码失效
4.扫码登录的状态
未扫描
扫描未确认
扫码并确认
二维码超时
实现:
1.PC端登录页面,提供标签页面TAB页,展示二维码登录图形
点击展示二维码的同时,触发相应事件,
进行二维码的初始化,带有一个随机数作为请求参数;若规定时间内未进行扫码,超时后再次扫码,为两次不同的请求;
一个递归调用的function,
ajax请求Java后台,查询当前缓存中用户的扫码状态,若规定时间内未扫码确认,则再次调用本身,向后台发起请求,直到超过指定的时候或用户操作确认
2.扫码
2.1 规定时间内,用户未扫描;提示二维码超时,隐藏二维码,提示刷新页面
2.2 规定时间内,用户扫描了二维码,则进行相应状态的处理
3.PC端Java
提供响应页面端的 action ,在规定内每一秒查询一次缓存中的用户登录状态
若未超时,且用户未确认登录,则返回页面响应,再次重新发起查询
若超时,则响应页面此时已超时,隐藏二维码,提示用户已超时并进行刷新操作
4.APP端Java
用户调用扫码功能,将请求转发到响应的ACTION上,APP端可获取用户的UID
用户扫码,记录一次请求状态
用户扫码未登录,更新一次请求状态
用户扫码并登录,更新一次请求状态,以uuid作为此次请求的key,value为UID
5.PC端Java
当查询到用户已登录,并获取到了UID,设置用户当前登录的SESSION值
扫码登录功能实现
猜你喜欢
转载自mingyundezuoan.iteye.com/blog/2236972
今日推荐
周排行