微信扫码 登录微信 实现原理

https://www.cnblogs.com/pocn/p/5848629.html#undefined
https://www.jianshu.com/p/707ec93799b2

微信扫码界面在这里插入图片描述

如果你用我查查、支付宝、新浪微博等软件扫码二维码,你会发现此二维码解析出来是如下的网址:

https://login.weixin.qq.com/l/obsbQ-Dzag==

扫码登录具体的每个步骤:

第一步: 用户 A 访问微信网页版,微信服务器为该会话生成一个全局唯一的 ID,上面的 URL 中 obsbQ-Dzag== 就是这个 ID,而且每次刷新后都会改变。这样可以保证一个uid只可以绑定 手机微信产生的token,确定登录用户的唯一性。

第二步: 用户A打开自己的手机微信并扫描这个二维码,并提示用户是否确认登录。

更具体得是:

除了返回唯一的uid,实际上打开这个页面的时候,浏览器跟服务器还创建了一个长连接请求uid的扫描记录

  • 如果没有,在特定时长后(目前是27秒左右)会接到状态码408请求超时),表示应该继续下一次请求;

  • 如果接到状态码201(服务器创建新资源成功),表示 客户端扫描了 该二维码

第三步: 手机上的微信是登录状态,用户点击确认登录后,获得服务器授信的令牌,进行随后的信息交互过程。

第四步: 服务器将这个 ID 和用户 手机微信产生的token 绑定在一起并通知网页版微信,这个 ID 对应的微信号为用户 A,网页版微信加载用户 A 的微信信息,至此,扫码登录全部流程完成。在超时网络断开其他设备上登录后此前获得的令牌或丢失或失效对授权过程形成有效的安全防护

关键点: 是将当前已登录的微信和扫出来的 ID 提交到微信服务器,类似的应用还有扫码支付扫码加公众号等功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值