QQ邮箱扫码登陆、淘宝网扫码登陆、微信网页版扫码登陆,你知道这些功能的实现原理吗,为什么手机扫一扫,浏览器客户端就登陆进去了?你有没有产生过这种好奇心,心中多问几个为什么。
当浏览器访问微信服务端时,服务端会将一个UID(全局唯一的)返回给浏览器,并封装到一个二维码中。同时,维持一个长连接,例如规定15分钟有效。这时用户拿起已经处于登陆状态的手机微信,扫描二维码,获得此UID,并将自己的帐号信息连同UID一起发送到微信服务端(SSL加密)。理论上讲,此时浏览器客户端已经可以登陆了,但是为了避免尴尬和突兀,还是需要用户点击确认按钮,之后服务端就会将用户列表发送到浏览器中。(浏览器会每隔很短一段时间发送get请求到服务端,验证是否有此UID对应的帐号和密码存在,如果有,并获得用户的点击确认,就登陆进去)