自从二维码技术开始普及之后,我们的生活中便随处可见二维码。二维码的确改变了我们的生活,不仅能够很方便的传播信息,还能够实现支付、链接网站、登录账户等。
今天我们就来聊聊二维码在“账户登陆”这一块的应用以及它背后原理。
下面这个图相信很多人都很熟悉,这是一个PC网页版微信的登录界面,我们只要用手机扫一下,就可以在电脑上登录我们自己微信。十分方便,并且很安全。并且我发现不仅微信,现在的各大网站都有这种登录方式。
微信网页版
我们扫一下二维码,就能登录自己账号。
一、思考
你有没有想过这个过程有点奇怪呢?
1.电脑端是如何知道是哪个微信扫了它呢?
2.扫码和登陆之间有何联系?
3.这种登陆方式安不安全,会不会被盗号。
反正以前我就有这样的疑惑,让我们来刨析一下这其中的玄妙。。。
乖乖坐好
二、捋一捋
首先我们先来看看整个工作流程吧。
- 进入网站登陆页面(或是打开客户端),会显示一个快速登录的二维码。
- 打开手机上已经登录了我们自己账号的App,扫扫二维码确认登陆。
- Binggou!电脑端页面随之而自动刷新,然后成功登录。
捋清楚了具体的步骤,然后我们再深入去研究研究其中的奥妙。
三、探一探
实际上,我们输入链接或者是点击书签进入一个网站,相当于向该网站的服务器发送了一个 GET 请求,然后服务器向我们返回相关页面和其他的一些信息,这便是基本的 HTTP 原理。
我们注意到,每次刷新二维码的时候,页面上的二维码都会变化;当我们隔一段时间不去扫这个二维码,这个码就会失效,需要我们重新获取二维码。
解析这个二维码之后,我们得到了一串链接:
微信二维码解析结果
前面是微信的域名,后面便是一串没有规则的代码。
没错,秘诀就在这串神奇的代码上!
沉弥在知识的海洋无法自拔
也就是说
- 当我们进入到登陆页面,服务器就会生成一串神秘代码,并且把它转换成二维码,展示在我们眼前。
- 当我们用手机扫描时,实际上就是获取到了这串代码。
- 然后我们的手机便带着我们的账号信息和这个神秘代码再次访问服务器。
- 服务器便回去比对两次的神秘代码,如果匹配上了就确认了是该用户想登陆。于是再把我们的信息传送到电脑网页上。
就此,我们便成功登陆了上去,没有输入帐号密码,仅靠一个二维码便完成了登陆。
最后整个过程的简略流程图如图所示:
扫码登陆简略流程图
没错,图中的 UUID 就是我们前面发现的那串神秘代码。
四、总结
看了上述的过程,恍然大悟。原来看起来这么神奇的扫码登陆,只是后面是我们看不见的服务器在操控着。
而其实在实际的情况下,整个过程还要复杂很多,其中不仅只有一个服务器,还需要其他技术参与,比如 redis数据库、风控系统等。
最重要的是这种登陆方法很新奇,很佩服当初第一个想到此方法的人~~
好了,今天的文章就分享到这里啦,欢迎大家留言交流。觉得文章不错欢迎点赞、收藏、关注 ^_^ 。
这里是 Skyzc,一个 Java&Python 程序员,每天与你分享最新的技术文章,以及互联网资讯,来我主页一起聊聊吧~