由于扫码登录比账号密码登录更方便、快捷、灵活,在实际使用中更受用户欢迎。在这种趋势下,一些SAAS软件也开始加入扫码登录的功能。前几天我优化了公司房产中介管理系统的登录功能,增加了扫码登录功能。在梳理的过程中发现这个小功能很有意思。
背景
有手机端和PC端,PC端只有账号密码登录,所以登录方式比较简单。
产品的用户是房地产经纪人。在实际工作中,他们没有固定的电脑,每次使用系统都需要重新输入账号和密码,登录过程不方便。所以需要添加扫码登录,方便用户登录。
扫码登录原理
1.web服务器需要生成一个惟一的键,它代表这个用户的登录事件ID。
2.根据唯一键生成二维码信息,并显示在网页上。
3.用户app扫描二维码
4.扫描后,App通知服务器我扫描了二维码。
5.收到消息后,服务器更新网页以表明其已被扫描,并将唯一密钥添加到要登录的列表中。如果超时,它将被删除。
6.用户的app端主动获取当前状态。如果唯一键没有超时或异常,会跳转到app端的确认登录页面。
7.用户点击确认登录后,与服务器通信,提交用户名和密码的验证值(可以考虑其他方案)。
8.web服务器收到后,判断验证值是否与数据库的验证值匹配,如果匹配,则确认用户登录。
9.用户的app检测服务器的返回值,处理当前返回状态,登录成功或失败。
扫描代码登录逻辑PC登录页面。
进入登录页面,默认显示账户登录;
点击“账号登录”和“扫码登录”切换登录模式;
点击“扫码登录”弹出二维码;
点击“返回”按钮,或点击“帐户登录”切换到帐户登录模式。
代码扫描成功。
在APP首页点击扫码入口,会弹出“扫描”页面:
扫码成功后,点击“确认登录”按钮,跳转至APP首页,提示“登录成功”;
5秒钟后,提示消失,主页显示PC登录状态。
手机未绑定。
当APP处于未绑定状态时,打开APP首页提示绑定。
没有网络的手机
手机无网络连接时,扫码后网络连接失败;
点击“确定”按钮,返回“扫描”页面。
没有网络的计算机
电脑无网络连接时,打开客户端或网页,会提示网络异常。
二维码过期。
一分钟内未扫码,或扫码后未确认登录,二维码过期。
如果手机从未确认登录,则始终是“确认登录”页面;一分钟后,PC的二维码就失效了。
手机扫描无效二维码,表示“二维码”已过期;点击“确定”按钮,返回“扫描”页面。
其他APP扫码
用其他App扫码后,跳转到App Store对应的下载页面,或者跳转到H5页面提示下载。
比如QQ的提示页面:
注销
点击App首页的登录状态一栏,弹出窗口退出页面。点击“退出”退出PC,手机登录状态消失。
扫码登录避免密码泄露的好处
不考虑电脑中毒,输入的密码有可能被攻击者肉眼看到或拍到。而扫码登录,虽然二维码是公开的,但只有用手机APP扫描才有用。
原来最核心的验证信息是账号密码,对外暴露。现在最核心的验证信息变成了手机里的APP_token,外界看不到,只有手机APP自己知道。在这方面,安全状况确实有所改善。
避免库冲突攻击。
很多人在多个网站设置同一个密码,是为了设置密码时省事。这样,一旦任何一个网站被攻破,攻击者得到你的密码,就可以尝试并成功登录其他网站。
在扫码登录时,即使攻击者得到了app_token,也找到了伪造请求的正确方法。他只能登录一个网站
随着app越来越多,用户需要设置的密码也越来越多,很多人都记不住密码。以我个人为例,我的QQ被盗过几次,密码被改过几次,每次登录都要试几次,整个登录过程非常复杂。
就是有些用户的密码设置比较复杂,比如大小写字母,输入密码的时候非常容易出错。这个时候,扫码登录真的是一个非常愉悦便捷的选择。
提高手机使用率。
使用扫码登录的前提条件之一是手机处于登录状态。对于微信来说,此举确实可以保证微信用户必须是移动客户端用户,有利于微信移动战略。
目前SAAS产品以PC为主,但房产中介的SAAS产品也在积极推广使用移动端。如果扫码登录功能上线,移动端的下载量和活跃使用量也会增加。
扫码登录的弊端,用户习惯的改变
大部分用户习惯密码登录,突然强制扫码登录,迫使用户改变习惯,容易引起用户的反对。以淘宝为例。淘宝在推广扫码登录之初,直接取消了扫码登录,遭到广大用户的投诉。改进后,中间登录账号密码时,会强行跳出扫码登录框。这个操作也被很多用户吐槽。经过不断完善,淘宝目前仍以推广扫码登录为主。可以看到,淘宝默认的登录方式依然是扫码登录。点击右上角进行切换。
当然可以
有比较好的解决方法,就是扫码登录和账号密码登录并存,只给用户多个选择,不绑架用户。这样的话,用户更容易接纳扫码登录,时间长了,也愿意使用它。在某些情况下并不方便快捷
如果用户是使用固定的个人电脑,网站上的账户密码都自动记住,在登录时只需点击“确定”即可登录。或者用户的密码简单好记,无需太多时间输入。此时如果使用扫码登录的话,还需要掏出手机,解锁屏幕,找到对应app,打开,找到扫一扫的按钮,点一下,慢慢等手机相机启动,扫一下,然后登录成功。相比之下,扫码登录的过程更繁琐,并没有帮助用户方便快捷地登录。
总结
由于扫码登录现在被广泛应用,微信、QQ、钉钉这些软件都做得很不错。所以在思考这个功能的时候有比较成熟的参考例子。在梳理扫码过程中,不同情况也能够思考地更完整。
SAAS产品的扫码登录比较特殊的一点是,关于权限的问题。但由于各个SAAS产品的登录权限都不同,所以这里就没展开讲。
总而言之,在查找资料、梳理逻辑的过程中,发现每天使用的扫码登录功能背后还是很有趣的。这也正是产品工作的乐趣所在,将最复杂的逻辑考虑清楚,将最简单的产品呈现给用户。
作者:异彩,产品新人。公众号:一只蜗牛慢慢跑
本文由 @异彩 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自 Pixabay,基于 CC0 协议