如何实现Web端扫码登陆


本文载录自博文:用户认证、权限、安全原理详解
原文地址: https://blog.csdn.net/qq_28550263/article/details/122138769#scancodelanding
作者: jcLee95
博客主页:https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343

7.1 前提:在移动客户端上认证用户身份

这也就是需要先在一个移动设备上进行登陆,一般是专用应用而不能是移动端的浏览器页面。

7.2 扫码登陆流程

在阅读这部分内容前请确保你已经完全掌握认证的含义,关于认证已在文章开篇有详细的讲解。

7.2.1 认证前从客户端发起请求:


一旦前端对于从服务端发来的 Key ,便对其进行编码成一个二维码,如 qrCode,用户用户在移动端进行扫码:

扫码登陆:这是笔者为了说明而做的一个模拟扫码页面

安全起见,二维码是有有效期的,可以手动设置一个有效期,也可以给定一个刷新按钮来从服务器更新二维码信息并在客户端中重新渲染。

7.2.2 用户在移动设备扫码

这一阶段中:

  • 对于 Web客户端 而言,客户端拿着自己从服务端获取的Key向服务端发起轮询已了解自己在移动设备上是否完成身份认证。
  • 对于 移动端 而言,当移动设备上进行扫码后,移动端便获取了Web客户端从服务器获取的Key。为了确保安全,移动端不应急于提交数据而应先向移动设备操作者确认登陆意图,对于安全较高的应用情景如银行帐户的登陆等,还需要做进一步的确认如人脸验证语音验证短信验证等等。验证完成后,将从PC客户端扫码获取的key与移动端自己存储的身份信息(有可能也是一个令牌之类的签名工具)发送的服务端

7.2.3 服务端响应客户端的轮询

对于 服务端而言,它时刻监听着来自多个移动端和Web客户端发过来的请求(可能有多个用户同时在进行认证操作)。 一旦监听到了移动端传来的key用户身份签名,意味着之前发给Web客户端用户生成二维码的Key被移动端扫描登陆中,这时需要响应此Key对应的客户端的轮询。可想而知为了额能确定相应的到底是哪一个Web客户端的轮询,这就要求服务端的Key必须是全局唯一的。

7.2.4 Web客户端完成登陆

当客户端在某次轮询后得到了签名工具(令牌 token)后,意味着以后可以使用该令牌对需要回传服务器的数据进行身份签名。这时可以提示用户“扫码登陆成功”,并跳转到相关的页面。但是需要注意的是,处于安全考虑仍不建议将与用户相关的重要数据存储在 token 中,因为这样容易导致 token 被破解带来的用户信息泄露。此处妥当的做法仍然是,将 token 用作某个时间端内在服务端标识某特定用户的键,但其中所有与用户相关的信息(值)仍然是存储在服务端的。

如何实现扫码登陆 扫码登陆原理相关推荐

  1. asp源码微信扫码授权登陆电脑版

    网站接入微信扫码登录并获取用户基本信息(完美绕过微信开放平台) 电脑版网站实现微信扫码登录,注册会员还要设密码太麻烦,会员也记不住密码,采用微信扫码登录网站更方便,会员无需设密码,用他的微信做为系统登 ...

  2. AbpVnext 扩展企业微信扫码登录(钉钉登陆、短信登陆、微信登陆等)Vue框架

    目录 1.开始开发准备 1.1 企业微信扫码登陆接入流程 1.2 开启网页授权登陆 1.3 构造独立窗口登陆二维码 1.4 构造内嵌登陆二维码 @@登陆顺序: 1. 发现文档配置 2. 获取token ...

  3. 40079 钉钉_钉钉获取免登陆授权码CODE,返回:不存在的临时授权码40078

    [官方正版]给孩子看的编程少儿读物 55.2元 (需用券) 去购买 > 最近在踩基于钉钉开放平台进行开发的坑,然后在进行身份认证时遇到了"钉钉获取免登陆授权码CODE,返回:不存在的临 ...

  4. 能吃还能扫,二维码汉堡了解一下

    二维码是日本的Denso Wave公司为了追踪汽车零件而设计的,距今已经有20多年的历史. 现如今大家可以在任何地方看到二维码,怎样要在普遍的事物中挖掘新意,让人们在掏出手机扫码的一瞬间获得惊喜,世界 ...

  5. JAVA 实现扫码二维码登录

    最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...

  6. 用STM32实现:摄像头扫到二维码后提取二维码中的信息分别放到数组中

    摄像头扫到二维码后提取二维码中的信息分别放到数组中 把想要的信息编辑好放到二维码中(网上有好多在线生成二维码的工具) /** *作者:魏波 *时间:2017.6.6 * **/char name[6] ...

  7. C(++) Websocket实现扫码二维码登录---GoEasy

    最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...

  8. node.js 实现扫码二维码登录

    最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...

  9. VB.net开发微信、支付宝扫码支付源码

    扫码消费机介绍:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-21914722028.2.2b826baawDkx32&id=170 ...

最新文章

  1. python可以做测试软件吗_Python如何给你的程序做性能测试
  2. 可以让你玩儿光剑的程序,vc实现方法和代码
  3. Intel Realsense D435 python 从深度相机realsense生成pcl点云
  4. hdu4099(斐波那契数+字典树)
  5. Linux环境下搭建FTP服务器
  6. 第14章:傅里叶变换
  7. 甲骨文Java 14来啦!
  8. Hadoop框架:Yarn基本结构和运行原理
  9. shell中返回值是1为真还是假_肝!Shell 脚本编程最佳实践
  10. 计算机配置cpo,使用域组策略及脚本统一配置防火墙-20210421070355.docx-原创力文档...
  11. 拓端tecdat|R语言马尔可夫区制转移模型Markov regime switching
  12. 啊哈C语言 第七章 【代码】【习题答案】
  13. 网页菜单设计html5,点靓网页的10种导航菜单设计
  14. 【米勒拉宾模板】Palindromic Primes
  15. solidworks装配教程:快速给装配体添加新零件
  16. 浅谈认识商业智能过程中遇到的困难
  17. 前端使用xlsx-js-style导出Excel文件并修饰单元格样式
  18. Bootstrap 4网格系统
  19. 【已解决】VS code源代码控制器显示5k+的修改文件
  20. 信号强度从百分比到分贝的转换

热门文章

  1. 爱因斯坦那颗大脑,究竟隐藏了什么
  2. 前缀树(字典树,单词查找树,Trie树)
  3. python3 输出系统信息
  4. 007-卷积神经网络03-前向传播-反向传播
  5. MyBatis笔记二:配置
  6. sql server 高可用故障转移(1)
  7. Keil下Debug随笔
  8. DataGridView导出到Excel的三个方法
  9. iOS 播放音频的几种方法
  10. throw er; Unhandled 'error' event Error: listen EADDRINUSE的解决方法