微信扫码跳转页面是怎么实现的

怎么运用websocket实现微信扫码跳转页面功能呢,目前websocket基本搭建已经完成了但是不知道扫码跳转页面是怎样的,有相关经验的大神吗?

阅读 12.9k
5 个回答

@redduke 实现机制如这位童鞋所说,我在其基础之上补充一点。

轮询查询用户授权状态。这种方式简单有效。
我真不太清楚为什么那么多人喜欢使用长链接。
https://wx.qq.com/ 微信网页版登录,自己使用chrome查看一下请求就知道了。

图片描述
上图中客户端会去轮询查询用户是否进行扫码。但是微信的做法有一点点小优化,如果没有扫码可以看到每个请求大约需要25s的时间返回,其实就是服务器保持该链接25s,在服务器看来这其实就是一个异步处理请求。如果用户在25s扫码操作完成,那返回后应该直接登录成功。如果未扫码那返回之后客户端会重新发起请求。

新手上路,请多包涵

url-生成->二维码-解析->url

1.生成URL,并监听服务器的状态
2.用户扫码,访问URL,授权确认,发送授权状态到服务器
3.页面监听到授权确认的状态,然后跳转URL

  1. 访问页面,生成二维码,二维码附带uuid.服务器存该uuid,页面等待扫描,并且一直请求该uuid的状态;

  2. 手机微信扫码,手机端跟服务端单独交互,发送二维码附带的uuid,页面显示该二维码已被扫描,需手机端确认登陆;

  3. 手机端点击确认登陆,发送授权信息给服务器,服务器返回页面登陆成功状态并跳转聊天界面;

我一直觉得微信的扫码登陆大体上就是这样,虽然其中可能有很多地方涉及到安全.
但是,我不知道啊!!

图片压缩太厉害了..
http://img.bitscn.com/upimg/a...点进去自己看吧

图片描述

开放平台,提供二维码登录默认实现了这部分

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题