扫码关注官方订阅号
怎么运用websocket实现微信扫码跳转页面功能呢,目前websocket基本搭建已经完成了但是不知道扫码跳转页面是怎样的,有相关经验的大神吗?
欢迎选择我的课程,让我们一起见证您的进步~~
@redduke 实现机制如这位童鞋所说,我在其基础之上补充一点。
轮询查询用户授权状态。这种方式简单有效。我真不太清楚为什么那么多人喜欢使用长链接。https://wx.qq.com/ 微信网页版登录,自己使用chrome查看一下请求就知道了。
轮询
上图中客户端会去轮询查询用户是否进行扫码。但是微信的做法有一点点小优化,如果没有扫码可以看到每个请求大约需要25s的时间返回,其实就是服务器保持该链接25s,在服务器看来这其实就是一个异步处理请求。如果用户在25s扫码操作完成,那返回后应该直接登录成功。如果未扫码那返回之后客户端会重新发起请求。
25s
url-生成->二维码-解析->url
1.生成URL,并监听服务器的状态2.用户扫码,访问URL,授权确认,发送授权状态到服务器3.页面监听到授权确认的状态,然后跳转URL
访问页面,生成二维码,二维码附带uuid.服务器存该uuid,页面等待扫描,并且一直请求该uuid的状态;
uuid
手机微信扫码,手机端跟服务端单独交互,发送二维码附带的uuid,页面显示该二维码已被扫描,需手机端确认登陆;
手机端点击确认登陆,发送授权信息给服务器,服务器返回页面登陆成功状态并跳转聊天界面;
我一直觉得微信的扫码登陆大体上就是这样,虽然其中可能有很多地方涉及到安全.但是,我不知道啊!!
图片压缩太厉害了.. http://img.bitscn.com/upimg/a...点进去自己看吧
开放平台,提供二维码登录默认实现了这部分
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
@redduke 实现机制如这位童鞋所说,我在其基础之上补充一点。
上图中客户端会去轮询查询用户是否进行扫码。但是微信的做法有一点点小优化,如果没有扫码可以看到每个请求大约需要
25s的时间返回,其实就是服务器保持该链接25s,在服务器看来这其实就是一个异步处理请求。如果用户在25s扫码操作完成,那返回后应该直接登录成功。如果未扫码那返回之后客户端会重新发起请求。url-生成->二维码-解析->url
1.生成URL,并监听服务器的状态
2.用户扫码,访问URL,授权确认,发送授权状态到服务器
3.页面监听到授权确认的状态,然后跳转URL
访问页面,生成二维码,二维码附带
uuid.服务器存该uuid,页面等待扫描,并且一直请求该uuid的状态;手机微信扫码,手机端跟服务端单独交互,发送二维码附带的uuid,页面显示该二维码已被扫描,需手机端确认登陆;
手机端点击确认登陆,发送授权信息给服务器,服务器返回页面登陆成功状态并跳转聊天界面;
我一直觉得微信的扫码登陆大体上就是这样,虽然其中可能有很多地方涉及到安全.
但是,我不知道啊!!
图片压缩太厉害了..
http://img.bitscn.com/upimg/a...点进去自己看吧
开放平台,提供二维码登录默认实现了这部分