目录

微信网页版登录步骤

问题

问题分析

问题总结

扩展


微信网页版登录步骤

1.  浏览器打开链接:https://wx.qq.com/,网页出现二维码

2.  手机扫描二维码,网页出现用户头像

3.  手机确认登录

4.  网页加载出用户微信界面

手机一扫描二维码,并且同意登录后,网页上就能及时知道当前二维码被扫描,用户同意后,立马就能加载出聊天界面,实时性非常高,

问题

那么网页是如何知道当前二维码是被哪个用户扫描的,是何时扫描的?

问题分析

用google浏览器打开网页版微信:https://wx.qq.com/,F12打开开发者工具,选择Network,F5刷新页面,可以看到此网页一直有一个请求处于等待相应状态,如下图:

请求参数如下:

https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=gcWrz8np0Q==&tip=0&r=-1942477294&_=1513770915130

该请求会一直处于等待相应状态,除非等到25s左右自动重新请求,或二维码被扫描,二维码被扫描的情况下,页面会加载出用户头像,并等待用户在手机上进行确认登录,确认后就能加载出微信主界面

1、  打开网页版微信,会向微信服务器发送请求得到一个uuid,用户生成登录二维码

2、  页面用此uuid作为参数发送请求,查看该uuid被扫描的情况,如果已经被扫描,则返回扫描者的信息,如果没有被扫描,等待一段时间后,继续查看,直到请求超时或找到扫描者信息

3、  用户用手机扫描二维码时,就是向服务器发送请求,用扫描到的二维码uuid作为key,生成扫描记录和授权记录,方便网页版使用该uuid查找扫描记录

问题总结

实现的关键在于一个一直处于等待回应状态的请求(长轮询),该请求保证只要二维码被扫描,就能实时的获取到用户信息

扩展

微信网页版的聊天也是保持一个ajax长轮询,如图

微信网页版扫码登录原理相关推荐

  1. [微信] 微信网页版扫码登录的实现

    我们先来回顾一下微信网页版的扫码登录过程 1. 打开微信网页版,https://wx.qq.com/ 2. 打开手机微信客户端,扫一扫 3. 点击确定,登录 看似简单的操作流程,中间涉及的数据交互有很 ...

  2. java实现简单扫码登录功能(模仿微信网页版扫码)

    java实现简单扫码登录功能 模仿微信pc网页版扫码登录 使用js代码生成qrcode二维码减轻服务器压力 js循环请求服务端,判断是否qrcode被扫 二维码超时失效功能 二维码被扫成功登录,服务端 ...

  3. java实现扫码微信登录_java实现简单扫码登录功能(模仿微信网页版扫码)

    public class PoolCache { // 缓存超时时间 10分钟 private static Long timeOutSecond = 10 * 60 * 1000L; // 每半小时 ...

  4. Java 语言实现简易版扫码登录

    基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学 ...

  5. Django使用Social-Auth实现微信第三方网站扫码登录

    前言 之前让网页公司制作新官网的时候规划有第三方账号的登录功能,但由于当时的一些开放平台申请步骤比较繁琐(尤其是微信开放平台),所以一直拖延着,到了最近只能自己添加相关的功能. 由于是刚接触Pytho ...

  6. Django实现微信第三方网站扫码登录

    前言 之前让网页公司制作新官网的时候规划有第三方账号的登录功能,但由于当时的一些开放平台申请步骤比较繁琐(尤其是微信开放平台),所以一直拖延着,到了最近只能自己添加相关的功能. 由于是刚接触Pytho ...

  7. 手把手教程用Java实现微信公众号扫码登录功能

    文章目录 前言 一.环境准备 二.使用步骤 1. 使用微信工具包 2. 创建数据表 3. 登录页面代码逻辑 4. 验证微信公众号登录 总结 前言 微信现今是我们必不可少的社交工具了,围绕微信这个生态实 ...

  8. 实现支持多公众号的微信公众号扫码登录服务

    实现支持多公众号的微信公众号扫码登录服务 最近,在公司的通行证项目开发过程中,需求方提出了支持微信公众号扫码登录,并且可以支持多公众号接入的需求.研究了一下微信公众号的开发文档,实现微信公众号扫码登录 ...

  9. 网页版微信和微信公共号扫码登陆原理分析

    看到知乎上有关于微信扫码登陆原理的讨论.现将自己的分析结果写出来,供大家参考,不正确的地方望指正. 用户打开网页版微信: https://wx.qq.com/,微信为用户生成了一张包含uuid的二维码 ...

  10. 「微信群合影2.5.0」- 微信网页版账号不能登录解决办法,扫码登录

    「微信群合影qunheying.com」- 一键生成微信全家福 「 微信群合影 2.5.0 」版本更新: 支持微信网页版不能登录账号生成群合影, 通过扫码登录获取 在一键生成全家福的过程中,有一些用户 ...

最新文章

  1. linux下编译onvif框架,Onvif第六课 Linux编译gsoap
  2. python怎么做图形界面-图形界面
  3. GDCM:压缩DICOM影像文件的测试程序
  4. Python习题11
  5. 工业相机与民用相机的区别_工业相机和普通相机的区别详解
  6. 不得不学的http协议
  7. oracle pk_serial,Oracle 常用技巧和脚本-数据库专栏,ORACLE
  8. realtime multi-person 2D pose estimation using part affinity fields
  9. c语言程序功能实现不了,请高手帮忙看看我的程序,编译不报错,但是实现不了功能...
  10. 既然选择了远方,便只顾风雨兼程……
  11. Linux下安装anaconda,创建虚拟环境python3.7,并且安装深度学习框架pytorch进行模型训练
  12. 10个程序员最喜欢的 HTML和CSS 等在线代码编辑器
  13. 使用Unicode字符集出现乱码问题
  14. oracle和mssql价格,Oracle与MSSql比对
  15. 初夏小谈:浅谈字节序,TCP,UDP协议
  16. 怎么判断冠词用a还是an_如何判断单词前的冠词用a还是an
  17. Check list of writing
  18. matlab图像剪裁命令imcrop()
  19. python生成单位矩阵_python 实现一个反向单位矩阵示例
  20. 多线程?不用怕,大不了多学几遍 - 工具类

热门文章

  1. Skywalking vs Pinpoint
  2. 这几个免费、商用图片素材网,你一定要知道。
  3. 100行代码,10分钟,详解Vue2.x响应式原理——理解Observer,Dep,Watcher
  4. 游戏开发者“谈虎色变”的游戏审批流程到底是怎么一回事?
  5. 抖音去水印,快手去水印,皮皮虾去水印操作方法(2019.6.12有效)
  6. 三年程序员成功转型项目经理
  7. 摄影构图学pdf_简单易懂,摄影小白也能Get的摄影技巧!
  8. SQL中如何处理除数为0的情况?
  9. 编程都是人上人,果不其然!2020年度十大高薪岗位,程序员独领风骚!
  10. c语言编程十进制转八进制算法,C语言十进制如何转八进制?