扫码登录看起来神奇,主要是因为微信 APP 扫自家的码会做一些普通二维码软件不会做的额外的操作,那就是将当前已登录的微信和扫出来的 ID 提交到微信服务器,类似的应用还有扫码支付、扫码加公众号等功能,实现流程如下:
1.当用户 访问微信网页版,微信服务器为这个会话生成一个全局唯一的 ID,此时系统并不知道访问者是谁。
服务器除了提供唯一的uid,实际页vps云服务器面打开时,浏览器跟还会跟服务器创建一个长连接,请求uid的扫描记录。
如果一直没有扫描,在特定时长后(目前是27秒左右)会接到状态码408(请求超时),表示应该继续下一次请求。
2.用户打开自己的手机微信并扫描这个二维码,并提示用户是否确认登录。
如果接到状态码201(服务器创建新资源成功),表示客户端扫描了该二维码。
3.手机上的微信是登录状态,用户点击确认登录后,手机上的微信客户端将微信账号和这个扫描得到的 ID 一起提交到服务器。
4.服务器将这个 ID 和用户 的微信号绑定在一起,并通知网页版微信,这个 ID 对应的微信号为此用户 ,网页版微信加载用户 的微信信息,至此,扫码登录全部流程完成。
也可以上下载微信登陆/支付的API,封装好的,接入时,只需填接自已的IP地址,商户号名,开发者帐号名,即可,方不方便,代码都不用写了
20490493