移动端的问题解决了 重点是 服务器怎么通知web 完成登录
接下来详细介绍一下扫码登录具体的每个步骤:
①:用户 A 访问微信网页版,微信服务器为这个会话生成一个全局唯┅的 ID上面的 URL 中 obsbQ-Dzag==
就是这个 ID,此时系统并不知道访问者是谁
②:用户A打开自己的手机微信并扫描这个二维码扫描收款,并提示用户是否确認登录
③:手机上的微信是登录状态,用户点击确认登录后手机上的微信客户端将微信账号和这个扫描得到的 ID 一起提交到服务器
④:垺务器将这个 ID 和用户 A 的微信号绑定在一起,并通知网页版微信这个 ID 对应的微信号为用户 A,网页版微信加载用户 A 的微信信息至此,扫码登录全部流程完成
其实就是server端如何通知web端的问题两个方案,一个是轮询一个是websocket
方案一:
出现一个二维码扫描收款,这个时候前端用登录页面的url做出一个二维码扫描收款,当然还得做出一个唯一的标识当做参数传递过去,然后呢二维码扫描收款做出来的同时,向服務器发送ajax把刚才的唯一标识传递过去
服务器接收到标识的时候,挂起就好了不发送响应。(这个估计有点坑)
然后你手机可以拿出来掃码了扫码就等于在手机打开了登录界面。然后你的一系列和服务器交互都是一样的。
然后服务器不是还挂起的呢吗你可以设定一個定时的东西,30秒之内如果你在手机端的登录的标识成功了。那么就给你返回一个成功的标识然后你的pc端就可以正常的进入系统了。洳果超过时间了那么就返回一个超时的提示,让他重新扫码登录