谈一谈扫码登录原理

这篇具有很好参考价值的文章主要介绍了谈一谈扫码登录原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

谈一谈扫码登录原理

 

今天给大家介绍下扫码登录功能是怎么设计的。

扫码登录功能主要分为三个阶段:待扫描、已扫描待确认、已确认

整体流程图如图。

谈一谈扫码登录原理

下面分阶段来看看设计原理。

1、待扫描阶段

首先是待扫描阶段,这个阶段是 PC 端跟服务端的交互过程。

每次用户打开PC端登陆请求,系统返回一个唯一的二维码ID,并将二维码ID的信息绘制成二维码返回给用户。

这里的二维码ID一定是唯一的,后续流程会将二维码ID跟身份信息绑定,不唯一的话就会造成你登陆了其他用户的账号或者其他用户登陆你的账号。

此时在 PC 端会启动一个定时器,轮询查询二维码是否被扫描

如果移动端未扫描的话,那么一段时间后二维码将会失效。

这个阶段的交互过程如下图所示。

谈一谈扫码登录原理

2、已扫描待确认阶段

第二个阶段是已扫描待确认阶段,主要是移动端跟服务端交互的过程。

首先移动端扫描二维码,获取二维码 ID,然后将手机端登录的凭证(token)和 二维码 ID 作为参数发送给服务端

此时的手机在之前已经是登录的,不存在没登录的情况。

服务端接受请求后,会将 token 与二维码 ID 关联,然后会生成一个临时token,这个 token 会返回给移动端,临时 token 用作确认登录的凭证。

PC 端的定时器,会轮询到二维码的状态已经发生变化,会将 PC 端的二维码更新为已扫描,请在手机端确认。

这里为什么要有手机端确认的操作?

假设没有确认这个环节,很容易就会被坏人拦截token去冒充登录。所以二维码扫描一定要有这个确认的页面,让用户去确认是否进行登录。

另外,二维码扫描确认之后,再往用户app或手机等发送登录提醒的通知,告知如果不是本人登录的,则建议用户立即修改密码。

这个阶段是交互过程如下图所示。

谈一谈扫码登录原理

3、已确认

扫码登录的最后阶段,用户点击确认登录,移动端携带上一步骤中获取的临时 token访问服务端。

服务端校对完成后,会更新二维码状态,并且给 PC 端生成一个正式的 token。

后续 PC 端就是持有这个 token 访问服务端。

这个阶段是交互过程如下图所示。

谈一谈扫码登录原理

以上就是整个扫码登录功能的详细设计!

 

作者|架构工具栈文章来源地址https://www.toymoban.com/news/detail-683985.html

到了这里,关于谈一谈扫码登录原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 谈一谈Python中的装饰器

    1.1 何为Python中的装饰器? Python中装饰器的定义以及用途: 装饰器是一种特殊的函数,它可以接受一个函数作为参数,并返回一个新的函数。装饰器可以用来修改或增强函数的行为,而不需要修改函数本身的代码。在Python中,装饰器通常用于实现AOP(面向切面编程),例如日

    2023年04月16日
    浏览(59)
  • 今天给大家介绍一下华为智选手机与华为手机的区别

    华为智选手机是由华为品牌方与其他公司合作推出的手机产品,虽然其机身上没有“华为”标识,但是其品质和技术水平都是由华为来保证的。这些手机在制造、设计和使用方面都采用了华为的相关技术和标准,因此可以享受到和华为旗舰手机相同的优质使用体验。    目前

    2024年02月09日
    浏览(48)
  • 今天跟大家好好介绍一下接口工具(jmeter、postman、swagger等)

    一、接口都有哪些类型? 接口一般分为两种:1.程序内部的接口 2.系统对外的接口 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把 数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的

    2024年02月05日
    浏览(51)
  • 谈一谈冷门的C语言爬虫

    C语言可以用来编写爬虫程序,但是相对于其他编程语言,C语言的爬虫开发可能会更加复杂和繁琐。因为C语言本身并没有提供现成的爬虫框架和库,需要自己编写网络请求、HTML解析等功能。 不过,如果你对C语言比较熟悉,也可以尝试使用C语言编写爬虫程序,这样可以更好地

    2024年02月08日
    浏览(56)
  • 【大数据面试题】007 谈一谈 Flink 背压

    一步一个脚印,一天一道面试题 (有些难点的面试题不一定每天都能发,但每天都会写) 在流式处理框架中,如果下游的处理速度,比上游的输入数据小,就会导致程序处理慢,不稳定,甚至出现崩溃等问题。 上游数据突然增大 比如数据源突然数据量增大多倍,下游处理速

    2024年02月20日
    浏览(55)
  • 谈一谈Vue怎么用extend动态创建组件

    Vue.js是一个流行的JavaScript框架,它提供了许多功能来帮助我们构建交互式Web应用程序。其中之一是使用extend方法动态创建组件。   extend方法是Vue.js提供的一个方法,它允许我们创建一个新的Vue组件构造函数。这个新的构造函数可以继承现有的组件,也可以添加新的选项。 我

    2023年04月24日
    浏览(41)
  • [轻科普]谈一谈最近手机上的2亿像素

    最近很多厂商发布了2亿像素的手机,2亿像素比较火热,如realme 11 pro + ,荣耀的honor 90 pro,以及之前小米发布的Redmi note 12 pro +。 下图为honor 90 Pro上搭载的2亿像素 ,为S5KHP3 下图为 红米上搭载的S5kHPX 2亿像素传感器。    下图为 Realme的两亿像素,S5KHP3的超级变焦版本   以上三

    2024年02月06日
    浏览(54)
  • 谈一谈如何加快android的项目的编译速度

    随着android的组件化的到来,一个项目后期功能越来越多,模块拆分的越来越多,作为android的开发的小伙伴就不得不面对运行一下android项目可能需要5,6分钟甚至10几分钟的等待期,开发时间都浪费在编译上了,你说烦不烦呢!那么怎么解决这个困境,总不能就这么一直凑合着

    2024年02月12日
    浏览(65)
  • 谈一谈SQLite、MySQL、PostgreSQL三大数据库

    每一份付出,必将有一份收货,就像这个小小的果实,时间到了,也就会开花结果… SQLite、MySQL 和 PostgreSQL 都是流行的关系型数据库管理系统(RDBMS),但它们在功能、适用场景和性能方面有一些不同。 SQLite : 轻量级 : SQLite 是一个嵌入式数据库,它不需要一个独立的数据库

    2024年02月05日
    浏览(60)
  • 今天给大家介绍一篇基于springboot的医院管理系统的设计与实现

    临近学期结束,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基于springboot的医院管理系统的设计与实现。 随着科

    2023年04月14日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包