原本网站端是简单地邮件注册功能,大家用着也没觉得有什么不好。
我们打算做app了,大家觉得(当然主要是我- -)第三方登录是移动端更方便的方式,于是,各种纠结和麻烦来了。

1)IOS 版本不允许只有第三方登录,必须要可以通过账户密码登录的,所以我们也要保留账户密码等登录。(虽然我个人更喜欢纯粹的第三方登录,多省事儿啊,你看medium他们都是这样的- -)

2)想当然地想用微博,微信,git进行第三方登录,但结果却是悲催的:

  • 微信需要公司信息-我们暂时还没有成立公司,所以做不了;
  • Git没有官方客户端,所以没有办法做登录
  • 微博需要app在IOS上架了,有appID然后才能申请审核(不一定通过)

3)第三方社交平台登录成功后返回给后端的ID是一个全新的ID,在没有和网站ID绑定的情况下,不能验证看该用户是否以存在。
因此如果系统发现这个账号是第一次登录,还需要有进一步的判断:

  • 这个用户是新用户。
  • 老用户但第一次用第三方登录。

有部分app的解决方式,是直接通过第三方ID建立一个新的用户ID,用户之后可以再登录老账号,绑定第三方账号。以最近一次的绑定为准。
简书就是这样。
另外也有app直接建立新ID,且不允许再次绑定,饿了么就是这样。

最后我们商量的结果是,当系统发现这是第一次登录的第三方账号时,都要求用户填写邮箱和密码:

  1. 如果用户是全新用户,则相当于创建新账户;
  2. 如果是老用户,则在这一步中绑定原有账户,避免了用户需要登出,用正常邮箱登录后,再绑定第三方的复杂步骤。

然而考虑到第2个问题,第三方登录我们只能延期再上,第一版依然使用正常注册方式。

这次有个很深的体会,在实现产品的时候,应该以实现核心功能为第一要务。非核心功能的创新(包括这次,我以为是很容易的事情,其实相当于对团队成员能力的创新)都属于高风险低收益的事情,应该在核心功能实现后再考虑。