我对微信扫描二维码登录网页版微信的原则看法

电脑杂谈  发布时间:2020-06-08 10:45:19  来源:网络整理

微信网页版二维码_微信网页版二维码_微信网页版 微信

1. 微信网络版有一个二维码. 此QR码中的信息实际上是一个url: 当然,其背后的参数是唯一的.

2. 打开微信网络版本后,Ajax请求将发送到服务器. 所请求的URL不是QR码中的URL微信网页版二维码,而是以下格式:

; tip = 1&_ = 1410184901947,(有三个参数,一个是QR码中网址后面的唯一标识代码uuid,一个是tip = 1(为什么不等于1,我不知道),一个是当前时间戳,参数名称是下划线“ _”),如下所示:

微信网页版二维码_微信网页版 微信_微信网页版二维码

微信扫描二维码登录网页版微信原理之我的见解

3. 服务器收到请求后,进入对应表,检查是否存在这样的记录: 即由get请求传递的参数(uuid)绑定到微信用户id的记录(在实际上是微信),如下所示:

微信扫描二维码登录网页版微信原理之我的见解

微信网页版二维码_微信网页版二维码_微信网页版 微信

1)如果没有这样的记录,该请求将在服务器端保留大约27秒(如果使用php实现,则估计是睡眠,然后检查,睡眠并检查重新,而不是在27秒后找到上面的记录时,它将返回window.code = 408)

微信扫描二维码登录网页版微信原理之我的见解

返回window.code = 408

微信网页版二维码_微信网页版 微信_微信网页版二维码

微信扫描二维码登录网页版微信原理之我的见解

当页面收到此返回值时,它将发送另一个请求(仍然是相同的请求,并且服务器端大约27秒没有任何结果,它将返回window.code = 408,在接收到页面之后,再次发送请求,依此类推. 直接找到该记录)

2)如果有此记录且ischeck = 0,则会显示该记录

微信网页版 微信_微信网页版二维码_微信网页版二维码

微信扫描二维码登录网页版微信原理之我的见解

4. 微信页面立即继续发送请求. 这次是检查ischeck字段是否为1:

1)如果为1,则服务器会对此uuid对应的微信进行登录(例如会话登录,您需要编写一个会话),然后向浏览器返回一个cookie以保存登录状态,说此微信号网络版本已登录,并且还返回登录跳转URL. 基于此返回值,微信页面使用类似js的window.location.href的方法来跳转和加载登录后所需的资源. ,微信网络版本登录完成.

2)如果不是1,则服务器将其保持约27秒钟(相当于不被手机扫描,并且移动终端再次单击Web版本的微信)后,将返回到原始登录页面. ,它会提示QR码已过期)

5. 至于微信查询的信息,是否插入?它必须是手机. 手机访问QR码上的链接,并使用唯一的uuid和自己的微信插入此消息. 插入成功后,服务器将向微信返回状态,微信将变为A按钮,要求您确认是否登录微信. 如果单击“确认”,则服务器上与此uuid对应的记录的ischeck字段将被标记为1,因为客户端已经反复查询是否存在该记录,如果存在该记录,则ischeck字段是否为1,以便手机可以单击以确认,客户端立即跳入并登录.

以上是我的个人想法,我不知道它是否正确微信网页版二维码,具体参数,访问请求可能不止于此(因为我发现微信已扫描QR码并单击“确认”以登录到网络版本的微信,一些参数已发布在“到服务器”页面上),但大致原理是这样的.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-238203-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...