前言
大家好,我是程序员阿木!
网页版微信刚推出时,无数人被它的登录方式惊艳了一下,不需要输入用户名密码,打开手机微信扫一扫,便自动登录。
微信扫码登录
如今,只要同时支持PC端与移动端的应用,均支持手机App扫码登录,像淘宝,12306等。从原理上讲,二维码只是一段文本的编码,那么它是如何实现快捷登录的呢?今天我们就来简单分析一下!
正文
如果你用我查查、支付宝、新浪微博等软件扫码二维码,你会发现此二维码解析出来是如下的网址:
https://login.weixin.qq.com/l/obsbQ-Dzdg==
接下来详细介绍一下扫码登录具体的每个步骤:
微信扫码登录原理
如图:
- 用户 A 访问微信网页版,微信服务器为这个会话生成一个全局唯一的 ID,上面的 URL 中 obsbQ-Dzdg== 就是这个 ID,但是此时系统并不知道访问者是谁。
- 用户A打开自己的手机微信并扫描这个二维码,并提示用户是否确认登录。
- 手机上的微信是登录状态,用户点击确认登录后,手机上的微信客户端将微信账号和这个扫描得到的 ID 一起提交到服务器
- 服务器将这个 ID 和用户 A 的微信号绑定在一起,并通知网页版微信,这个 ID 对应的微信号为用户 A,网页版微信加载用户 A 的微信信息,至此,扫码登录全部流程完成
至于服务端如何通知网页版的微信,无非两种方式:
如果是CS的应用,则客户端使用轮询的方式去询问服务器是否登录成功
- 如果是BS的应用,则服务端可以通过CallBack回调的方式来告知客户端登录成功。
扫码登录看起来神奇,主要是因为微信 APP 扫自家的码会做一些普通二维码软件不会做的额外的操作,那就是将当前已登录的微信和扫出来的 ID 提交到微信服务器,类似的应用还有扫码支付、扫码加公众号等功能.
结语
以上便是扫码登录的原理,你弄明白了吗?