文档章节

二维码扫描登录

老牟
 老牟
发布于 2014/05/06 16:10
字数 554
阅读 3563
收藏 8

下面介绍二维码扫描登录原理,

首先需要web服务端,和app客户端。

web服务端主要工作是生成二维码,检测客户端提交信息正确性,更新网页界面。

app客户端主要工作是扫描二维码,提交账户信息(此不是指提交用户名和密码),与服务端通信。

那么二维码扫描登录有什么优势呢?

1 简单快捷

   只需要app客户端扫描二维码,点击确认登录就完成登录了。

2 安全

   在与客户端通信过程中不提供用户名和密码信息,断绝了以往直接在PC端登录木马窃取用户账户密码的行为。

那么二维码扫描登录是怎么工作的呢?

1 web服务端需要生成了一个唯一KEY,代表此次用户的登录事件ID,跟你在京东买东西下单的单号差不多。

2 根据唯一KEY生成二维码信息,显示在网页上。

3 用户app扫描二维码,后通知服务端我已经扫描了二维码。

4 服务端接收消息后,更新网页提示说已经扫描,把唯一KEY加入将要登录列表,如果超时将会移除(相当于把单号状态改为待支付状态,超过24小时就会说下单失败)。

5 用户app端主动获取当前状态,如果唯一KEY没有超时或者没有异常,将会跳转到app端的确认登录页面。

6 用户点击确认登录后,与服务端通信,提交用户名和密码验证值(可以考虑其他方案)。

7 web服务端接收后,判断验证值是否与数据库的验证值匹配,如果匹配确认用户登录。

9 用户app端检测服务端返回值,处理当前返回状态,登录成功,失败。

 

© 著作权归作者所有

共有 人打赏支持
老牟
粉丝 14
博文 20
码字总数 8401
作品 0
成都
程序员
私信 提问
加载中

评论(1)

f
fengziiti
实现客户端扫码登录分为下列四步:
1.  Web页面生成二维码
生成的二维码中必须要包含一个用于唯一标识用户的数据,这个唯一标识是为了确保将客户端(手机)与web网页绑定,避免其他人登录了你的账号。在这里可以生成以个随机的guid作为唯一标识。
生成二维码,大家可以使用jQuery qrcode插件 (http://www.ideawu.net/blog/archives/795.html)。
2.  客户端扫描二维码
客户端在扫描二维码之前需要验证是否已经登录了账号,如果没有登录,则需要提示用户先登录。如果已经登录了,那么在扫描了二维码后应读取唯一标识guid并将sessionID一并发送给后台服务器(例如Java)。
3.  通过GoEasy服务器主动告知web网页登录成功
后台服务器接收到请求后通过GoEasy将sessionID主动推送给拥有相同唯一标识的web网页。
GoEasy后台实时推送到web :http://www.cnblogs.com/jishaochengduo/articles/5552645.html
Java实现二维码扫码登录:http://goeasy.io/www/demo/qrcodelogin
4.  Web浏览器设置登录的相关cookie信息
Web浏览器收到消息中包括了登录相关的sessionID,浏览器通过javascript代码就可以把cookie加入到浏览器中,这是浏览器就完成了登录。
微信扫描二维码登录网页的原理

1.微信扫描二维码登录网页过程 [电脑] 打开 http://wx.qq.com,得到二维码; [手机] 手机登录微信,点开扫一扫,扫描PC端二维码,并且扫描成功; [电脑] 手机扫描成功后,提示“登录网页版微...

w-rain
2016/02/17
984
2
雨翔河/ScanLogin

手机扫一扫登录 服务器生成uuid和uuid为内容的二维码,同时生成一个全局的hashMap,key为uuid,value为登录信息,现在为空。 浏览器得到服务器传过来的uuid和二维码的同时发起轮询操作,问服...

雨翔河
2015/04/29
0
0
微信扫码登录网页实现原理

扫码登录操作过程 浏览器输入:https://wx.qq.com/?lang=zh_CN 手机登录微信,利用“扫一扫”功能扫描网页上的二维码 手机扫描成功后,提示“登录网页版微信”;网页上显示“成功扫描 请在手...

kisshua
2016/10/14
88
0
二维码预览界面被图片遮盖的问题

我弄了一个登录界面的界面,输入帐号和密码的edittext都使用了背景图片,输入完毕后点击的登录,显示二维码扫描界面的预览,但是界面出现了登录界面的帐号登录框的背景图片,而且被放大拉长了...

Leozhu
2013/03/11
293
0
反向工程解析QQ扫码登录的OAuth2流程

1. 引言-与OAuth2有关   OAuth 2.0协议(RFC 6749)被广泛应用于互联网应用中,最常见的可能就是第三方授权登录应用了。在许多应用网站中用户登录时,可以使用支付宝、微信、QQ的已有账号进行...

solarpig
08/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

solr使用规范

0. 目的 规范solr设计、用法,避免bug,提高性能 1. 设计规范 solr的用途是查询,不是存储,建议查询结果尽量都为id主键,而后再拿该id主键到缓存或者db中再查询相关信息,例如:请勿将经销商...

andersChow
17分钟前
1
0
11-《深度拆解JVM》之Java对象的内存布局

一、问题引入 在 Java 程序中,我们拥有多种新建对象的方式。除了最为常见的 new 语句之外,我们还可以通过反射机制、Object.clone 方法、反序列化以及 Unsafe.allocateInstance 方法来新建对...

飞鱼说编程
21分钟前
1
0
Windows Install Docker

win7、win8 win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ docker toolbox...

linuxprobe16
25分钟前
1
0
混合云环境中扩展Kubernetes的挑战及方案

流量突增时,我们需要扩展应用程序以满足用户需求。本文分享了扩展Kubernetes以及管理混合云环境时可能遇到的挑战,以及如何简单高效地完成Kubernetes扩展。 引 言 假设您的业务是在线的:您...

RancherLabs
33分钟前
1
0
Java集合小抄

Java集合小抄 1. List 1.1 ArrayList 以数组实现。节约空间,但是数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组。因此最好能给出数组大小的预估值。默认第一...

傅小水water
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部