扫码登录原理

以淘宝的扫码登录为例

在这里插入图片描述
在这里插入图片描述
手动刷新二维码地址
https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do?adUrl=&adImage=&adText=&viewFd4PC=&viewFd4Mobile=&from=tbTop&appkey=00000000&umid_token=T391152055F267C6EDCCB18EC75662246048A5880408CC936A697798A0E&ksTS=1586168700229_3926&callback=jsonp3927
返回信息
(function(){jsonp3927({“adToken”:“2e3613938a291620d4472f29a2ec89f6”,“success”:true,“lgToken”:“f8016a4440f2c6b3ebce098fea847cd1”,“message”:"",“url”:"//img.alicdn.com/imgextra/O1CN01frgVYg2EClvdsyqVC
!!8709-2-xcode.png"});})();

二维码信息
https://login.m.taobao.com/qrcodeCheck.htm?lgToken=f8016a4440f2c6b3ebce098fea847cd1&tbScanOpenType=Notification

轮询地址,间隔2秒,3分钟过期
https://qrlogin.taobao.com/qrcodelogin/qrcodeLoginCheck.do?lgToken=f8016a4440f2c6b3ebce098fea847cd1&defaulturl=https%3A%2F%2Fwww.taobao.com%2F&_ksTS=1586168852637_5017&callback=jsonp5018
返回信息
(function(){jsonp5018({“message”:“login start state”,“success”:true,“code”:“10000”});})();

调用流程
1、用户打开登录页面,客户端生成一个随机串umid_token,向服务器获取二维码地址。

2、服务端生成lgToken,并作为key写入redis,过期时间为3分钟,value设置为umid_token;然后将lgToken拼接到登录地址的参数,返回给客户端。

3、客户端根据地址生成二维码展示,并携带lgToken轮询接口,查看用户是否扫描了此二维码,是否授权登录了。如果lgToken已过期,客户端就提示用户点击刷新二维码,并停止轮询,注意这个过期时间是必须要设置的,否则服务端将多出很多无用的请求。

4、手机扫描二维码,授权信息并登录,服务端生成用户的token,并且将token写入lgToken,客户端轮训得到token后,服务端就可以将lgToken删掉,防止二维码被泄露,同时客户端调用用户信息接口得到用户的详细信息。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值