zoukankan      html  css  js  c++  java
  • 微信扫码登录实现原理

    扫码登录是如何实现的?

     
     

    网页版微信刚推出时,无数人被它的登录方式惊艳了一下,不需要输入用户名密码,打开手机微信扫一扫,便自动登录。从原理上讲,二维码只能是一段文本的编码,如何用它实现快捷登录的呢?

    打开网页版微信,可以看到如下的页面:


    微信扫码界面

    如果你用我查查、支付宝、新浪微博等软件扫码二维码,你会发现此二维码解析出来是如下的网址:

    https://login.weixin.qq.com/l/obsbQ-Dzag==

    接下来详细介绍一下扫码登录具体的每个步骤:

    第一步:用户 A 访问微信网页版,微信服务器为这个会话生成一个全局唯一的 ID,上面的 URL 中 obsbQ-Dzag== 就是这个 ID,此时系统并不知道访问者是谁。

    第二步:用户A打开自己的手机微信并扫描这个二维码,并提示用户是否确认登录。

    第三步:手机上的微信是登录状态,用户点击确认登录后,手机上的微信客户端将微信账号和这个扫描得到的 ID 一起提交到服务器

    第四步:服务器将这个 ID 和用户 A 的微信号绑定在一起,并通知网页版微信,这个 ID 对应的微信号为用户 A,网页版微信加载用户 A 的微信信息,至此,扫码登录全部流程完成,流程图如下:


    扫码登录完整流程

    扫码登录看起来神奇,主要是因为微信 APP 扫自家的码会做一些普通二维码软件不会做的额外的操作,那就是将当前已登录的微信和扫出来的 ID 提交到微信服务器,类似的应用还有扫码支付、扫码加公众号等功能,关于二维码在产品设计中的应用,推荐另一篇文章:《二维码这把利刃,产品应该用到极致》。

     
     
       
    • 相关阅读:
      svn使用教程
      事务的隔离级别--全网最详细
      idea的java类图标C不见,取而代之是J标识,且写代码无提示
      text .global_start 和_start
      transformClassesWithDexForDebug
      RxJava基本流程和lift源码分析
      Rxlifecycle(三):坑
      Rxlifecycle(二):源码解析
      RxJava操作符之Share, Publish, Refcount
      Rxlifecycle(一):使用
    • 原文地址:https://www.cnblogs.com/pocn/p/5848629.html
    Copyright © 2011-2022 走看看