janlay’s blog

悠悠人生路,翩翩少年情

谈谈我对 OAuth 登录并关联新建帐户的看法

最早,我使用相关技术的产品体验,是从 Yupoo 开始的,当时还不是用 OAuth, 而是 OpenID. 那时候我也在关注 OpenID, 觉得 Yupoo 很潮,欣然试了一把。使用 OpenID 登录过程很顺利(我甚至开通了 myopenid 的语音检验),但是回到 Yupoo 之后,我发现系统居然要求我输入新用户名和密码。虽然有点纳闷,还是抱着小白鼠的心态,输入了新帐户信息。

而今,曾经被热捧的 OpenID 技术逐渐式微,OAuth 方案随着 Twitter 的崛起已成为事实上的帐户验证和连接标准。

毫无疑问,OAuth 可以加强用户登录的动力,而新用户登录即意味着注册用户量的增长。所以 OAuth 是个快速提升用户数的好方法(创业网站太需要这个数字了)。

用户首次 OAuth 登录时,可能需要输入两种密码(登录外部帐户和创建本系统帐户)才能完成全部登录流程,这样增加了用户的输入成本。不过,最近我注意到,越来越多的网站在站外登录后仍然要求创建本系统内的帐户,连一直和 Twitter 保持紧密联系的 bit.ly 都开始要求用户注册本地帐户。当然,还有今天了解到的丁香园站外登录。

为什么要这样?表面上看,原因很简单——用户是你网站的全部,你不能把最重要的资产托付给别人。进一步思考,即便你的网站现在完全信任外部登录提供方,你也必须走上这条路,因为:

  • OAuth 得到的信息是有限并且受限的。你提供特定的服务往往需要进一步获知用户的资料,比方说你需要用户的真实姓名,QQ 无法提供给你。受限意味着你不能随心所欲访问你想要的信息,登录提供方和用户都可能有意无意调整授权策略,从而让你的数据请求无功而返。
  • 外部登录帐户不可能永远满足你的需求。你的系统在壮大,你的业务方向可能会调整,你的系统架构必须不断改进——你需要灵活地控制帐户体系,才有可能满足这些变化。
  • 关联使得新帐户仍然保有与外部网站交换信息的能力,这对社会化功能来说很重要。
  • 生意场上没有永远的朋友。

结论:OAuth 是个好技术,善用才能用好。

Comments