下面介绍二维码扫描登录原理,
首先需要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端检测服务端返回值,处理当前返回状态,登录成功,失败。