浅谈登录/注册的方式
◆ 0 ◆
无意读到一篇文章,讲的是用户可以通过手机号一键免密登录APP。是不是听起来有点高端?讲一下我理解的原理:APP配置中国移动的接口,用户授权,通过接口获取设备上的手机号,用户确认登录。
使用这种登录方式有什么好处呢?
• 用户无需走注册流程,只需授权即可,还省下了一笔短信验证码费用。
• 二次号查询,APP将用户注册时间传给移动,移动将用户的注册时间、入网时间比对。如果注册时间比入网时间早,说明此手机号的前任主人在该APP上注册过账号,APP就可以为用户分配新的ID,避免误登录。
不过我存在的疑问是:双卡双待的手机怎么办?不需要密码是否存在更大安全风险?
PS:免密一键登录目前只支持移动和电信,身为联通用户想要体验一下的机会都没有。。。如果不是看到这篇文章,我至今都不知道还有这种操作。。。
◆ 1 ◆
趁着不是很忙,顺便把目前主流的注册/登录方式回顾梳理一下。毕竟是产品中最基础的功能,从0-1就是这么来的。
手机号+短信验证码是使用最多的,用户不需要设置密码,一切只需要一条短信就可以搞定。平时要记住大小写字母+数字+符号+长度X-XX位的密码,想想都觉得累呢!
一般在发送短信验证码之前,还需要图形验证码进行验证,防止机器人盗刷短信。图形验证码除了字符输入,还有滑动模块、点击文字图片的方式,相对不那么乏味。
同时短信验证码还需要考虑验证码的时效、能否重复使用、能否连续发送等问题。
曾经还流行过语音验证码,直接给用户打电话播报。怕用户收不到短信心情不好,放弃使用产品。现在各家使用的短信通道基本是几个大厂,性能比较稳定,所以语音验证码作为辅助功能在逐渐退出。
如果用户不想用手机号,还可以用邮箱。平台会向邮箱发送验证码,或者一条确认的链接。但在国内个人邮箱使用频率不高,可能更符合商务人士和外国人的习惯。再者使用邮箱注册需要用户跳出产品,流失率会高一些。
还有反过来让用户主动发送短信注册的,例如百度网盘。不理解为何要这么麻烦,也可能是担心用户收不到短信吧。
短信验证码的方式存在两个问题:
• 不法分子可利用短信诈骗、存在短信被拦截风险。
• 如果用户在信号不稳定区域,会收不到短信验证码。
◆ 2 ◆
账号+密码的方式相对麻烦一点,但是安全性更高一些。账号可以是手机号,也可以自定义,很多都会做唯一性校验。除非在数据库中,账号名称不是唯一识别ID。
因为有的产品不仅要设置密码,还需要绑定手机号。一是为了获得用户信息;二是为了方便发短信运营推广;三是方便用户后续可使用短信验证码直接登录;四是没有绑定手机号,用户忘记密码不好找回。
大家有没有发现,在登录时输入错误会提示“账号或密码错误”,而不是单独提示“账号错误”、“密码错误”,避免居心不良的人去试。打个比方,我想知道男朋友是否背着我在婚恋网站撩骚,便尝试用他的手机号登录,如果提示“密码错误”,说明他注册过这个婚恋网站。。。然后再试一下他常用的密码,就登录进去了。。。
账号+密码登录在内部产品使用比较多,还有对数据和隐私有要求的产品。例如各种后台、管理系统。同时也存在问题:
• 大部分用户避免忘记密码,在多个平台会使用同样的密码。如果其中一个平台数据泄露,那么其他平台也存在风险。
• 像我这种记忆力不好的人,真的是容易忘记密码呀!
◆ 3 ◆
第三方授权快速登录。用户不需要在平台注册账号就能使用。主要支持微信、QQ、微博,阿里系的产品支持淘宝、支付宝,还有一些产品有海外市场,也支持脸书、谷歌账号登录。
选择第三方登录时,会跳转到第三方产品授权页面,用户确认授权就可以登录使用。
如果手机内没有安装该第三方产品,用户可以输入第三方的账号、密码进行授权。有的产品会报错无法授权使用。
很多人担心第三方授权会不会导致隐私泄露,其实用户个人信息是公司的宝贵资源,不会随便让其他公司获取到,而且传输过程会加密。不过同为一个派系的产品,可能相互之间授权的信息会更多一些。例如淘宝授权给饿了么,就会把用户手机号、默认收货地址也授权了,别的产品想获取那是不可能的!
正是因为第三方授权能获取到的信息太少了,很多产品在授权登录后,还是会想方设法地让用户完善手机号等个人信息。
对于用户来说这种授权的方式还是很方便。
◆ 4 ◆
广泛应用在pc/web端的二维码扫描也很方便。
如果产品只有pc/web端,没有做APP,二维码扫描属于第三方注册/登录。如果两端都做了,则可以使用APP扫一扫直接登录。
实现原理:
• 用户打开pc/web,页面自动生成二维码,此时已与服务器进行长连接。比如我使用第三方二维码登录,此时页面与第三方的服务器连接。不过web端的长连接会有时间限制,用户迟迟不操作会自动断开。↓
• 用户使用APP扫描二维码,APP会把用户信息发送给服务器确认。如果使用别的APP扫描,是无法将信息传给服务器的。↓
• 服务器确认信息后,会让用户确认授权登录。用户点击确认,服务器会将token发送给pc/web,并加载用户账号信息。不过web端的token可能会有访问时长、自动断开等限制。
对于用户来说,唯一的问题是忘记带手机,就无法使用了,例如微信pc/web端除了二维码,其他方式都不能登录使用。
对于产品来说,如使用第三方扫码不利于收集用户信息。
◆ 5 ◆
除了考虑注册/登录的方式外,还应该考虑该功能在什么时机出现比较好?不是所有产品一打开就需要用户注册/登录才能使用。
例如资讯类、平台类产品,用户可以游客身份先使用,在恰当的时机引导用户注册,用户需要收藏、评论、下单。。。的场景下再跳出提示框。
而通讯类、商务类产品就需要要先注册,但流程要尽可能简化、少一些页面跳转、少一些不必要的输入框。输入键盘也可以贴心地根据格式要求调整。
还可以再延伸考虑下,登陆后token多久失效?是否单点登录?除了上述登录方式外,可否再设置指纹、声音、手势、面部识别其他登录方式?
最后,带着我的疑问结束。如果一个用户通过多种方式在平台注册账号,平台能否识别?能否将几个账号的信息整合?
END