网站客服:zx81024163 |

扫描二维码登录原理

2023-09-16 13:03:30发布    浏览420次    信息编号:74229

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

扫描二维码登录原理

手机扫描二维码登录网站的操作流程如下:用手机登录APP,使用“扫一扫”功能扫描网页上的二维码。 扫描成功后,会提示“登录网页版XX”,同时网页显示“扫描成功,请点击手机确认登录”。 在手机上点击“登录网页版XX”,用户登录后网页跳转至首页。

整个扫描二维码登录的过程相当简单,交互也比较实时。 如果网络不是很堵的话,整个过程还是很快的。 那么它是如何实现的呢?

基本思想是PC浏览器首先获取一个临时ID,该ID被包裹在二维码中并设置有效时间。 这个ID不是UID(用户ID),而是由字母和数字组成的唯一标识符。 象征。 然后等待客户端用这个ID扫描二维码。 二维码的转码规则是统一的,这意味着任何人只要是二维码扫描软件都可以得到这个链接。 获取链接是没有用的。 重要的是谁获得了链接(即计算机如何知道哪个APP帐户扫描了它)。 PC浏览器通过长连接或者不断轮询登录授权接口来检查该ID关联的二维码是否被移动客户端扫描到。 手机客户端扫描时,会将这个ID发送到后端服务器(无论是手机还是网页都对应后端相同或相关的服务器),即向后台发送一条消息服务器告诉服务器现在谁正在使用它。 二维码链接。 服务器收到这个ID后,会在长连接或者轮询请求中回复一些不同的信息给PC浏览器,表明二维码链接已经被扫描到,需要在手机上确认。 当移动客户端点击确认时,PC浏览器会获取服务器的信用token(或者设置),这样PC浏览器就可以携带这个token进行后续的信息交互。如图

二维码链接超时、网络断开或在其他设备上登录后,之前获取的令牌可能会丢失或失效,对授权过程形成有效的安全防护。

我们先看一下扫描一家公司的二维码登录的流程。首先看网站给出的二维码。

事实上,任何二维码都代表一串字符。 通过曹发二维码网站发现,这个二维码代表的是以下字符串:

[公司域名]//.php?=pc&code=

该代码是当前网页给出的唯一ID。 每次打开或刷新时,都会生成一个包含唯一ID的二维码,以确定登录用户的唯一性。

打开二维码登录页面后,我们通过控制台查看网络请求,发现网页正在轮询并调用接口:

如果没有扫码,返回的信息为:

({

“”:1001

})

如果手机扫码,手机会发送【公司域名】/index.php请求

该请求将携带二维码的ID,及其返回信息:成功将状态设置为已扫描并等待登录。 但如果您没有在手机上点击“确认登录”,浏览器将继续循环浏览该界面。

但此时界面返回

({

“”:1002

})

可以看到状态发生了变化。 当手机点击“确认登录”时,手机再次调用【公司域名】/index.php请求。

本次请求的返回信息:登录成功。 而且上次请求携带的参数几乎是一样的。

此时查看PC端轮询接口的请求和响应如下:

接口返回:

({

“”:1003

})

在这个请求响应中,服务器还设置了以及其他一些信息

提醒:请联系我时一定说明是从星空网上看到的!