扫码登录操作过程
整个扫码登录的操作过程还是挺简单的,而且交互地实时性比较好,如果网络不是非常阻塞,整个过程还是非常快的。
扫码登录原理
扫描代码登录的一般想法是:微信移动客户端从网页二维码中获取一些信息,然后发送到网页微信服务器,网页服务器验证信息并响应。下面,我们使用火狐浏览器Firebug看看工具,到底是怎么回事!
1.每次打开微信网页版,都会生成一个包含唯一内容的版本uid二维码,每次刷新都会改变。这可以确保一个uid只能绑定一个帐户和密码,以确定登录用户的唯一性。您可以使用手机UC浏览器提供的扫码功能可以查看二维码中的信息,但不会自动打开地址。我刷新了三次,扫描结果如下,最后一串是uid:
1) https://login.weixin.qq.com/l/48e24d66bdbc4f
2) https://login.weixin.qq.com/l/0787fb4fa7ad4c
3) https://login.weixin.qq.com/l/92781a4a7f1c47
通过查看网页源代码,该页面在加载后提前加载了大量登录所需的相关资源,因此登录用户在确认后显示用户信息非常快。
2.除了返回唯一的uid,事实上,当页面打开时,浏览器还与服务器创建了长连接,请求uid扫描记录。如果没有,状态码408(请求超时)将在特定时间后(目前约27秒)收到,表示下一个请求将继续;如果收到状态码201(服务器成功创建新资源),说明客户端扫描了二维码。
请求加时:返回408
扫码成功:返回201
代码结构:长轮询:
3.用户使用登录后的微信扫描二维码时,会uid生产手机微信token绑定并上传到服务器。此时,浏览器通过长轮查询查询uid扫描记录,立即获得201响应码,然后通知服务器,客户端进入一个新页面(即要求您点击确认的按钮)。点击客户端确认后,获取服务器授信令牌,进行随后的信息交互过程。
结语
一般来说,微信扫码登录的核心过程应该是这样的:浏览器获得一个独特的、临时的uid,通过长连接等待客户端扫描uid二维码后,从长连接中获取客户端报告给服务器的账户信息进行显示。点击客户端确认后,获取服务器授信令牌,进行随后的信息交互过程。加班、网络断开等设备登录后,以前获得的令牌丢失或失效,对授权过程形成有效的安全保护。
扫码咨询与免费使用
扫码免费用
申请免费使用
在线咨询