在日常使用各个APP的时候,大家应该都或多或少接触过与“授权”有关的场景。大家有没有想过在不需要输入密码账号的情况下,是怎么实现第三方登录的呢?本文作者将结合自己的项目经历来跟大家谈谈他所知道的授权登录。
谈到授权登录,相信大家并不陌生,在日常使用各个APP的时候,大家应该都或多或少接触过与“授权”有关的场景,比如:进入支付宝或微信中某个子应用时会出现的弹窗,这些都属于授权登录的范畴。在支付宝和微信所包含服务越来越多的情况下,这个功能给我们带来了极大的便利。
但不知道大家有没有想过,这种看似很正常、方便、简单的功能,是怎么做到在我不输入任何账户密码信息的情况下实现第三方服务账户登录的,而且在登录之后里面的购物车、订单记录还都全部同步了。而且在第一次授权成功之后,后面的登录都是直接完成的。
是因为微信或者支付宝拿到并保存了我们的账号密码么?那这个算信息泄露么?
本文我将就自己的项目经历来谈一谈我所知道的授权登录。
二、名称解释:什么是授权登录?授权登录是指通过一套简单、安全的交互流程,让第三方应用可以在不知道用户登录名和密码的情况下,获取到用户的的对应信息,从而实现在第三方应用中的对应客户端的登录并关联第三方平台账户。
也就是说,对于用户来说,当你登录了一个APP之后,你再使用这个APP上的任何第三方服务,都不需要再手动输入一遍第三方服务对应的账号密码。而且在完成第一次登陆后,接下来的一段时间内用户再使用此服务都可以实现无感知登录。
三、需求背景:为什么要做授权登录?(1)缩短用户操作步骤,降低流失率
手动输入账号密码如果作为常规的登录方式,那么在阻断用户操作流程的同时,必然也会将一部分用户赶走,故授权登录降低了用户的操作成本,更容易促进用户转化的前提。
(2)统一接入规范,把控登录方式
因为各应用的页面是由第三方自己开发的,所以再风格样式、提供服务等方面的差异,必然会导致各服务的登录页面也会存在着些许差异,例如:在同一个平台上,有的应用支持手机验证码登录、有的支持邮箱登录、有的甚至还支持其他平台的账号登录(如:微信里面支持支付宝账号快捷登录),这其实是不利于整体品牌形象的营造和用户体验的统一的。
(3)获取用户信息,考虑合规要求
授权登录在为用户提供便利的同时还能获取更多的信息(如:昵称、头像),并且授权弹窗上的用户协议可以避免合规性风险。
(4)协议管理方便,快速签约解约
同意授权登录之后等于用户跟平台签订了一个允许获取指定信息的协议,故授权登录功能必然会带来协议管理功能,通过此功能,用户可以快速的注销各服务的账号。
四、前端业务流程:授权登录相关的业务流程1. 授权登录流程- 用户登录客户端,进入第三方应用;
- 点击授权按钮,客户端唤起授权页面;
- 点击“同意”授权按钮,发起授权流程;
- 授权成功,第三方应用账号登录并关联,进行后续流程;
- 授权失败,提示“系统繁忙”,退出子应用;
- 点击“拒绝”按钮,直接退出子应用。
- 客户端协议管理列表页;
- 授权登录弹窗。
- 用户登录客户端,进入到协议管理列表页;
- 选中想要解约的协议,进入到协议详情页;
- 点击“解除”授权按钮,发起协议解约;
- 解约成功,提示“解约成功”,回到协议管理列表页;
- 解约失败,提示“解约失败”,回到协议管理列表页。