由于扫码登录比账号密码登录更方便、快捷、灵活,在实际使用中更受到用户的欢迎。在这个趋势下,一些SAAS软件也开始增加扫码登录的功能。本人在前几天就对公司的地产中介管理系统的登录功能进行优化,增加了扫码登录功能。在梳理的过程中发现这个小功能还是很有趣的。
背景
产品有手机端和PC端,PC端只有账号密码登录,登录方式比较单一。
产品的用户是地产经纪人,在实际工作中,他们没有固定的使用的电脑,所以每次使用系统都需要重新输入账号和密码,登录过程不方便。所以需要增加扫码登录,方便用户登录。
扫码登录原理
1、web服务端需要生成了一个唯一KEY,代表此次用户的登录事件ID。
2、根据唯一KEY生成二维码信息,显示在网页上。
3、用户app扫描二维码
4、扫描后App通知服务端我已经扫描了二维码。
5、服务端接收消息后,更新网页提示说已经扫描,把唯一KEY加入将要登录列表,如果超时将会移除。
6、用户app端主动获取当前状态,如果唯一KEY没有超时或者没有异常,将会跳转到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产品的登录权限都不同,所以这里就没展开讲。
总而言之,在查找资料、梳理逻辑的过程中,发现每天使用的扫码登录功能背后还是很有趣的。这也正是产品工作的乐趣所在,将最复杂的逻辑考虑清楚,将最简单的产品呈现给用户。