用户系统设计:第三方授权、账号绑定及解绑(下)

用户系统是很多产品最基础的构成之一,但是越是基础越是开源设计想要完善也更难。在设计用户系统的时候,首先想到的关键词是注册和登录。但并不是有这两者就足够了,更加完善用户系统本身还需要考虑:多平台账号打通,同平台账号之间绑定与解绑,账号安全等及需要怎样的前端设计才是满足这个产品本身定位和用户操作的设计。

下文接着来讲服务端设计

2. 第三方授权登录

上篇文章我们介绍过第三方授权的用户不是用户系统的用户,仅是单一app的用户,此原则在此篇仍适用。第三方授权是为app注册登录提供一种便捷的方式和补充。那么第三方授权的登录和注册是怎么回事呢?简单来说就是第三方有一个公开的授权接口,你有权访问并起用户确认后能够返回此用户在第三方的身份openid,可作为app生成自己用户身份的验证。

(1)主流程图

第三方授权注册登录

  • 调取第三方sdk,查询此openid是否已有appuserid;
  • 若是,登陆;若否,创建appuserid并将基本资料存入app服务端。

3. 账号绑定

账号绑定分为绑定手机号和绑定第三方授权账号。第三方授权能够给用户提供便捷的注册和登录方式,这是好的一点,但是正因为操作太便捷没有参与感所以用户很容易忘记自己的登录方式。账号绑定到目的就是避免用户忘记登录方式,每次授权都在app内创建一个用户身份,不利于用户操作的同时也不利于产品用户信息留存。所以产品设计上来讲用户的登录和注册方式尽量简单、多种,但是尽量在非必要非用户自主想创建另外账号的情况下尽量一个用户在一个app只存在一个身份。

主流程图:

绑定手机号

绑定手机号

Step1:用户输入手机号点击获取验证码,客户端进行基本判断(后面详细介绍)后,app服务端发送验证码;

Step2:用户系统服务端验证用户的手机号是否已存在对应的appuserid;

若是,提示此号已绑定,先更换绑定手机号

若否,用户系统按照手机号注册流程,用户系统创建unionid,将union传给app并关联当前登陆的appuserid,绑定成功

绑定第三方授权

App服务端查询账号信息,是否存在appuserid;

若是,提示此号已绑定,建议先解绑;

若否,将此第三方授权openid绑定到登陆的appuserid中;绑定成功

4. 账号解绑

账号解绑也分为手机号和第三方授权。手机号只允许更换绑定不允许解除绑定。更换绑定的场景就在于用户更换了手机号,为了账号安全将之前的信息迁移到新的手机号中,并将更换的原手机号从系统中删除,若再次注册将视为新账号。

主流程图:

账号解绑

更绑手机号

Step1:原手机号+验证码,app服务端验证是否为真,为真发送验证码;

Step2:新手机号+验证码+密码,app服务端验证手机号+验证码是否为真,为真进行step3

Step3:用户系统服务验证此手机号是否已存在unionid;

若是,提示更绑失败

若否,将新手机号替换原手机号,关联原手机号unionid,appuserid;并将原手机号从用户系统中删除;

解绑第三方授权

Step1:当前第三方授权是否已经绑定手机号,若是,成功解绑;若否进行step2;

Step2:当前第三方授权是否绑定其他第三方授权登陆,若是进行step3,若否提示无法解绑,首先请绑定手机号;

Step3:当前第三方授权是否为最早一个绑定(即注册账号);

若是,调取第三方授权登陆页面,用户重新登陆要解绑账号+密码(需要确认是否能抹除用户登录信息要求输入账号密码),登陆成功则解绑成功;

ps:这里被开发同事验证不能抹去登录信息,因为我们只有调取接口的权限。但是当时之所以想要这么设计,是为了账号安全,可以试想一个场景,我把你的账号绑定到我的微信/微博等,然后接触你的账号,相当于这个账号就归我了。--事实证明现在的权限没办法解决这个问题。

若否,解绑成功。

用户系统设计:前端设计和多平台账号打通(一)

用户系统设计:第三方授权、账号绑定及解绑(下)

作者:王悠悠悠

来源:http://www.jianshu.com/p/088de40cb100

关键字:产品经理, 绑定

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部