这篇文章,主要是想解答自己内心的疑惑:注册登录流程基于不同行业、不同类型、不同的安全要求,是否存在最优的设计方案?
在过往2年多,独立设计了几款产品,但对于注册登录流程,一直没有深入研究,心存疑虑。趁着最近的空闲,分析了33款APP的注册登录。
我将以上33款APP分为了以下7个维度进行对比分析,上一篇主要讲了3和4,点击这里可查看
本文目录:
微信授权的基本原理
微信授权的注意事项
微信授权注册后,是否需要手机号
一、微信授权的基本原理
1. 微信授权流程
移动应用使用微信登录是基于OAuth2.0协议标准,构建的微信OAuth2.0授权登录系统。开发者在进行微信OAuth2.0授权登录接入之前,需要在微信开放平台注册开发者帐号,将自己的移动应用提交审核并通过,从而获得相应的AppID和AppSecret。申请接入微信登录且通过审核后,才可以开始接入流程。
具体细节可以参见微信开放平台的 移动应用微信登录开发指南
简单来说,微信的授权流程如下:
请求code:用户点击第三方应用的微信登录时,会对微信发起授权登录请求,用户允许授权给第三方应用后,微信会拉起应用或重定向到第三方网站,并且返回授权临时票据code参数;
通过code获取access_token:第三方应用通过code参数加上AppID和AppSecret等,通过API换取access_token;
通过access_token调用接口:第三方应用通过access_token请求微信进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。
授权后接口调用的官方说明:点击这里进行了解
了解微信授权可获取的用户基本数据,有利于合理使用和设计微信授权机制。
上图来自官方说明截图,可以看到所有可获取的用户数据。因此微信授权注册的好处,除了可以简化注册流程,同时还可以免去用户设置昵称、性别、地址信息、头像的步骤,对于社交类应用来说,是不错的选择。
二、微信授权的注意事项
从上面的图中可以看到两个字段,分别是:openid和unionid,这两个id的选用,对于第三方应用是需要特别注意的。
两者的区别在于:
openid:同一用户,对同一个微信开发平台开发者账号的不同应用,openid是不相同的;
unionid:同一用户,对同一个微信开放平台开发者账号的不同应用,unionid是相同的。
也就是说,如果同一个微信开放平台开发者账号下有多个应用,同一微信用户针对不同的应用,会拥有不同的openid。如果采用openid作为用户注册信息,则用户会在每个应用下,拥有一个账号。
而unioind是针对微信开发平台账号的,就算开发者拥有多个应用,用户的unionid都是唯一的,所以开发者可通过获取用户基本信息中的unionid来区分用户的唯一性。选择unionid作为用户的账号注册信息,可以方便对多应用的用户账号进行统一。
三、微信授权注册后,是否需要手机号
用户在完成微信授权后,获取并使用用户的openid/unionid作为注册信息,用户即可完成注册(建议产品经理朋友们,可以学习一下数据库基础,很有用)。因此,仅就注册功能的需求来说,手机号并不是必须的。
但是微信授权也存在着弊端,如通过微信授权的获取到的用户信息,无法与用户取得直接联系。这时就要根据实际情况判断,是否要求用户绑定手机号,以及在什么时候要求用户绑定手机号。
在本次调研的33款APP中,13款金融类的APP均不支持微信授权登录,除开政策因素,对于金融类产品,手机号是非常重要的用户信息,而微信授权后能获得的用户信息,对于社交功能非核心的应用来说,也没有太大的用处。
除开微信和13款金融APP,剩下的19款支持微信授权的APP中:
10款在微信授权后必须绑定手机:平安好医生、微医、健康160、随手记、豆瓣、知乎、得到、趣头条、京东、网易考拉;
2款在微信授权后提示绑定手机号但可以跳过:快手、抖音;
7款授权后无需绑定手机:挖财记账、今日头条、网易严选、拼多多、陌陌、最右、微博。
也就是微信授权后,必须绑定手机的和无需绑定的,基本持平。
《中国人民共和国网络安全法》第二十四条 网络运营者为用户办理网络接入、域名注册服务,办理固定电话、移动电话等入网手续,或者为用户提供信息发布、即时通讯等服务,在与用户签订协议或者确认提供服务时,应当要求用户提供真实身份信息。用户不提供真实身份信息的,网络运营者不得为其提供相关服务。
根据网络安全法规定,涉及要用户发布信息、即时通讯功能的APP,都需要用户提供真实身份信息,而最方便获取和验证的,就是实名认证的手机号。
要求用户提供手机号,对于开发者来说是有利的。但微信授权之后,立刻要求绑定手机号,就无法体现出微信授权注册的简便,反而显得多余。
快手、抖音,在绑定手机页面提供一个跳过功能,是一个不错的折中的选择。陌陌在用户退出登录时,若该用户没有绑定手机会提示用户绑定,也是一个可以参考的解决方案。也可以考虑,当用户使用到这些必须实名认证的功能时,再提示绑定手机。
相关阅读
注册登录的设计:基于33款APP的注册登录分析(一)