二维码扫描登录
博客专区 > 老牟 的博客 > 博客详情
二维码扫描登录
老牟 发表于4年前
二维码扫描登录
  • 发表于 4年前
  • 阅读 3461
  • 收藏 6
  • 点赞 1
  • 评论 1

华为云·免费上云实践>>>   

摘要: 工作也快2年半了,是时候记录些真真学到的东西,虽然以后的路不知道该怎样走,但是记录当下也算是看着自己长大吧。

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

首先需要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
评论 (1)
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 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: