技术学习:手机扫描电脑二维码登录原理

通用地实现方式(以登录电脑浏览器网页版微信为例):

  1.每打开一次微信(Client)电脑浏览器网页时会随机生成一个含有唯一uid的二维码,每次刷新页面都会不一样(*这个可以保证一个uid只可以绑定一个帐号和密码,如果一个uid可以绑定多个帐号和密码,那么很可能你的电脑会登录别人的微信)

    ps: 返回uid的目的是识别用户身份,而且实际上打开这个页面时浏览器已经和Server创建了一个长连接等待确认信息。这个页面在加载完毕时,也已经把很多登录后才需要的相关资源都预先加载进来了,所以长连接等待登录用户得到确认后展示用户信息速度很快,因为无需刷新页面和加载头像外的其他资源。

  2.当用户在手机版微信访问这个页面进行确认时,Server已经同时获得了客户端信息,并通过之前保持的长连接告知浏览器。

  3.浏览器展示完长连接里包含的用户信息(头像等)后,会重新开一个长连接等待客户端(手机)的确认操作。从安全角度来说,无论如何都不会让客户端(网页)获得微信账号和密码的。[要知道,密码这玩意儿腾讯自己都不敢保存]

    *长连接实际是通过堵塞等待实现近乎实时的获得信息

    *Open API 一般是通过授权令牌(Token)来解决的,原理是当用户通过授权后,分配一个限定条件下的令牌。(限制本机访问,限制授权有效时间,限制同时登录设备数等)

     使获得授权的用户仅在有限的前提下就能访问相关服务。

    *同时,整个授权过程的验证部分都在手机端进行,有效杜绝了PC端上泛滥的各类木马,安全工具的监听,大大降低了被盗号的风险。

总结:

  核心过程:打开网页版微信登录界面后,浏览器会获得一个临时id,通过长连接等待客户端扫描带有此id的二维码后,从长连接中获得客户端上报给Server的帐号信息进行展示。并在客户端点击确认后,获得服务器授权的令牌(Token),进行随后的信息交互过程。(在超时,网络断开,其他设备上登录后,此前获得的令牌或丢失、或失效,对授权过程你形成有效的安全防护)

还没理解吗?没关系,看我根据思路画的图:

在CNODE上看到一位网友的想法:“用轮询做,大都是这样做,不然就是用长连接。首先扫码,二维码里面带有一个你生成的随机数,当微信回调你的服务器的时候进行验证,顺便记录下随机数,前台拿随机数去判断有没有登录成功。”

开始在网上搜集相关资料,最后进行整理。

转载于:https://www.cnblogs.com/tim100/p/6613709.html

手机扫描电脑二维码登录原理相关推荐

  1. Unity3D:问题(已解决):如何:实现手机扫描电脑二维码,然后手机上显示此二维码对应的图片

    目录 一.目的 1.想知道:如何:实现手机扫描电脑二维码,然后手机上显示此二维码对应的图片 二.参考 1. 三.注意 四.操作:1:失败:草料二维码官方不提供API.SDK等 1. 四.操作:2:失败 ...

  2. 手机扫描网页二维码登录实现原理分析

    阅读本文大概需要 5 分钟. 相信我们每个人经历过这样的场景: 手机扫码登录 PC 版微信,通过二维码扫描登录,笔记本上的微信就和手机微信同步登录了.这样免去输入繁琐的账号密码,确定方便得很. 对于这 ...

  3. 图示扫描二维码登录原理

    想要了解手机端扫描二维码登录原理,首先我们要了解二维码和token认证机制两个内容,接下来我们将用图示的方法来直观感受这个面试时候的paper tiger. (第一次用visio画图,用熟练之后就感觉 ...

  4. 微信QQ的二维码登录原理js代码解析

    这篇文章主要大家详细解析了微信QQ的二维码登录原理js代码, 具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在很多地方就是都出现了使用二维码登录,二维码付款,二维码账户等应用(这里的二维码种马,诈 ...

  5. 二维码登录原理及生成与解析

    一.前言 这几天在研究二维码的扫码登录.初来乍到,还有好多东西不懂.在网上看到有人写了一些通过QRCode或者Zxing实现二维码的生成和解码.一时兴起,决定自己亲手试一试.本人是通过QRCode实现 ...

  6. 形象理解二维码登录原理

    之前在极客时间看到一个介绍二维码登录的原理,这里写篇文章记录一下.二维码是我们日常生活中随处可见,支付扫码,登录扫码,添加好友扫码,或者查看某些内容也需要扫码.今天分享一下二维码背后的技术和逻辑,并且 ...

  7. 微信QQ的二维码登录原理浅析

    在非常多地方就是都出现了使用二维码登录,二维码付款,二维码账户等应用(这里的二维码种马,诈骗就不说了),二维码验证,多终端辅助授权应用開始多起来,这里先说下啥是二维码,事实上二维码就是存了二进制数据的 ...

  8. QQ网页微信、QQ二维码登录原理分析(整理)

    QQ和微信的登录过程中,使用二维码登录,这里根据网上的一些资料简单总结: 二维码是包含二进制数据的黑白图片.当进行登录时,服务器生成一条二维码信息,发送给PC客户端.这时,手机终端(已经存在指定账号登 ...

  9. 二维码登录——原理区

    2019独角兽企业重金招聘Python工程师标准>>> 1.PC端的逻辑 用户点击二维码按钮,向后台发送创建二维码的ajax异步请求,后台生成二维码后以二进制数据流的形式返回给前台, ...

  10. 开放平台–扫描微信二维码登录

    准备 如不了解第三方登录流程,建议先大概了解一下,在来看看代码. 说明: 由于开放平台无测试号测试,所以只能上开放平台进行配置信息.公众平台的测试号并不能给开放平台使用. 微信开放平台地址:https ...

最新文章

  1. python 空数组_从零开始学python之numpy
  2. 多数据源:spring boot+mybatisplus配置
  3. apt-mirror is already running(已运行)错误解决方案
  4. 源码与tarball套件管理程序笔记摘录
  5. 调用另一个cpp的变量_Il2Cpp Internals: 托管调用栈
  6. linux 截取列_Linux 常用命令汇总
  7. 继英伟达、三星后,育碧也遭攻击,员工密码重置
  8. JAVA实现的支付宝扫描二维码支付
  9. 刨根问底:对于 self = [super init] 的思考
  10. 精益软件开发(Lean Software Development)
  11. grads 相关系数_气象绘图软件GrADS高级使用技巧
  12. IPv6技术精要--第14-16章 IPv6路由选择
  13. 计算机硕士伊利诺伊大学排名,2020年伊利诺伊大学芝加哥分校排名TFE Times美国最佳计算机科学硕士专业排名第71...
  14. 日语输入法使用技巧!
  15. 获取Keycloak的Token示例
  16. 用了这么久开源社区,还搞不明白免费/自由/开源软件?
  17. 谷贱伤农,薪贱伤码农!
  18. 多媒体计算机探索 教案,浅论关于多媒体教学的思考和探索
  19. 用python发微博
  20. R语言中的正则表达式

热门文章

  1. ssm项目搭建(tomcat配置)详解
  2. 解析2016中国智慧城市发展新趋势
  3. 身份证前6位编码与地址对应关系表
  4. PyQt5 +requests 写一个能播放全网音乐的播放器
  5. RT-Thread (3) 为RTT增加SP485驱动||RTT UART设备
  6. UltraISO和rufus制作服务器U启动和下载步骤
  7. CUDA实例系列四:利用GPU加速Sobel边缘检测(含源码)
  8. 《物联网通信》知识提纲-第1章 概述
  9. mac 安装redis 视频教程
  10. Power Platform 介绍