扫码授权登录是一次性的吗(手机扫码登录原理一看就懂)

通过手机扫描二维码来登陆系统,比如手机微信扫码登录公众号后台,手机淘宝扫描登录web端淘宝等等。是常见的一种登录方式。

那么二维码登录是怎么实现的呢?其实背后就是一套基于Token的认证机制,运行机制大致如下。

1、用户发起二维码登录:此时网站后台会先生成一个二维码,同时把这个二维码对应的标识保存起来,用于跟踪二维码的状态,然后将二维码数据返回前端;浏览器给用户展示这个二维码,

同时对后端相应API接口发起扫码状态的轮询。携带唯一的标识Token查询二维码的当前状态,这里也可以使用WebSocket方案。

2、用户扫码确认登录:用户打开手机App,扫描浏览器中展现的二维码,App解析出二维码中包含的信息,显示登录确认的页面,用户点击确认或者同意按钮后,App将二维码信息和当前用户的Token一起提交到网站API,

网站API确认用户Token有效后,更新在步骤1中创建的二维码标识的状态为“确认登录”

,同时绑定当前用户。

3、网站验证登录成功:在步骤1中,二维码登录页面启动了一个扫码状态的轮询,如果用户已经“确认登录”,则轮询访问网站API时,网站会生成二维码绑定用户的登录Session,

然后向前端返回登录成功消息。这里登录状态维护是采用的Session机制,也可以换成其它的机制,比如JWT。

理解了它的原理,实现起来其实还是挺简单的。网上有发现一些现成的扫码登录解决方案,看起来还可以,具体没尝试过。

扫码授权登录是一次性的吗(手机扫码登录原理一看就懂)(1)

扫码登录解决方案

扫码授权登录是一次性的吗(手机扫码登录原理一看就懂)(2)

扫码登录回调参数

毕竟,码神们还是更喜欢自己挫的轮子。因为自己写的更可靠嘛[捂脸]

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页