二维码扫描登陆的原理及深入解析

5 篇文章 0 订阅

一、单方扫描登陆

  基本的实现流程: 

  1. PC端打开login.html,ajax请求passport.wx.com?appid=123&redirect_uri=monitor.wx.com,服务端响应带有uuid=456和状态码200的内容,再次发起两个ajax请求,一个长轮询/长连接请求monitor.wx.com/is_associate?uuid=456监听服务端uuid是否被关联,一个请求passport.wx.com/getQrCode?uuid=456获取二维码
  2. 掏出手机,扫描二维码,让用户确认“是否把uuid和代表用户信息的openid”关联
  3. APP端确认登录,发送请求confirm.wx.com?uuid=123&openid=789,服务端正式关联({'123': '789'})
  4. PC端在login.html的长轮询/长连接请求终于监听到服务端正式关联,拿到重定向响应monitor.wx.com/is_associate?uuid=456&openid=789
  5. PC端在login.html发送拿到的monitor.wx.com/is_associate?uuid=456&openid=789请求,服务端发送set_cookie进行设置cookie

二、第三方登录

不过就是多了个中间者(第三方),只需把第三方openid与我方的openid关联就行了。

openid:只是代表着用户信息的凭据而已

三、长轮询和长连接的实现

https://www.cnblogs.com/hoojo/p/longPolling_comet_jquery_iframe_ajax.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值