文档章节

二维码扫描登录

老牟
 老牟
发布于 2014/05/06 16:10
字数 554
阅读 3568
收藏 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
反向工程解析QQ扫码登录的OAuth2流程

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

solarpig
08/03
0
0
二维码预览界面被图片遮盖的问题

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

Leozhu
2013/03/11
337
0

没有更多内容

加载失败,请刷新页面

加载更多

NPM install -save 和 -save-dev 傻傻分不清

本文原文地址:https://www.limitcode.com/detail/59a15b1a69e95702e0780249.html 回顾 npm install 命令 最近在写Node程序的时候,突然对 npm install 的-save和-save-dev 这两个参数的使用...

翔飘飘
7分钟前
0
0
spring-boot:run启动时,指定spring.profiles.active

Maven启动指定Profile通过-P,如mvn spring-boot:run -Ptest,但这是Maven的Profile。 如果要指定spring-boot的spring.profiles.active,则必须使用mvn spring-boot:run -Drun.profiles=test......

颖辉小居
7分钟前
0
0
抛弃console.log(),拥抱浏览器Debugger

译者按: 切换成本真的不高,建议使用开发者工具来Debug! 原文:How to stop using console.log() and start using your browser’s debugger 译者: Fundebug 为了保证可读性,本文采用意译...

Fundebug
11分钟前
0
0
Flask框架web开发:零基础入门

Flask框架是Python开发的一个基于Werkzeug和Jinja 2的web开发微框架,它的优势就是极其简洁,但又非常灵活,而且容易学习和应用。因此Flask框架是Python新手快速开始web开发最好的选择,此外...

笔阁
24分钟前
5
0
VMware前路难测,多个厂家群雄逐鹿

在人们高谈Salesforce、亚马逊等新兴云计算厂商取得的成就时,以VMware、HPE和Cisco为代表的老牌厂商也在进行着自己的转型和变化,而且还取得一定的进展。以VMware为例,虚拟机巨头公布了第二...

linuxCool
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部