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

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

用户系统的实现简单来说有两种方式:一是自己构建用户系统;二是用第三方授权。第三方授权获得的用户信息有限且受制于人,而自己构建用户系统研发及用户使用成本均不如第三方授权。所以更多的是两者并存,相互补充。

由于工作需要从0到1设计一个用户系统,本人不是强技术型产品,所以在定义服务端字段或需求有不完善和不专业的地方,希望大家多提意见,共同完善。

一、总结需求

一. 用户系统基本注册/登录功能及前端页面设计

二. 多平台账号打通,即在单一app注册的用户,能够使用此账号登陆系统内所有app

三. 用户相对独立,对于单一app来说用户身份唯一


二、前端设计

一. 用户系统基本注册/登录功能及前端页面设计

1.  账号密码优先

账号密码优先是最常见的一种登录注册设计,适用于普遍场景,鼓励用户用注册方式登录,有利于产品引导用户完善更多的资料,留存自己的用户信息。例如知乎是以账号密码登录为最优先,且会隐藏第三方授权登录。现在的账号密码登录都会以用户注册方式代替系统生成的userid作为账号。纯账号密码登录是较为早期的设计,例如早期qq和飞信。

2. 手机号快捷登陆优先

手机号快捷登陆,也叫免密登录/短信验证码登录,适用于用户不登录能够完成大部分行为,只有在某种场景下必须获得用户身份时才需要用户登录,且此时用户的想要完成的行为是被要求登录操作打断的。常见的如团购类产品,用户在应用内进行了商品的浏览、筛选、添加到购物车,当要进行最后一步付款操作时,发现未登录。这时繁琐的注册或者登录都有可能导致这笔订单甚至这个用户的流失。所以这时获取用户身份的方式一定要尽可能便捷。

3. 第三方授权登陆优先

第三方授权登陆,适用于对用户资料和权限要求不高快速解约开发成本的产品。建议在应用构建用户系统的前期可以首先接入第三方,快速的实现登录功能。但是若想建设自身关系链还是需要完善自己的用户系统。

用户资料实际也属于用户系统等设计的内容。是否要增加此项的判断原则是根据这个产品对用户资料的需求程度决定用户注册时是否要增加资料填写页,资料填写页是强制阻断性的还是可跳过的,必填的资料项有哪些,希望填的有哪些。例如是需要关系链的那么注册的时候就应该强制用户去填写资料设置必要的昵称和头像,这样的用户对于此类应用来说才属于有效用户,不然在app内用户点进资料页,全是系统自动生成的垃圾信息,对于建设关系链和留存伤害较大。


申请读取本机号码权限,并帮用户填写

申请读写短信权限,获取到验证码后自动填写并点击下一步

应该前置到提醒:上次登录方式,合法的手机号,正确的图形验证码等等

三、服务端设计

简单的用户系统服务端的基本功能需求为:判断账号身份(注册/未注册),账号身份生成(新用户分配id),账号密码验证;这里要设计的并不满足于注册登录,需要考虑多平台账号打通的用户系统并且要和在打通情况下单一平台或多个平台之间,用户的多个账号之间绑定于解绑。

现在先说一下多平台账号打通需要考虑哪些问题:

用户系统身份的创建,因为我们是多平台的系统,所以用户身份只能纳入手机号注册的用户,若第三方授权注册的也算用户系统用户,在账号绑定的那一关则会出现混乱;

实现多平台账号打通,要实现多平台账号打通,即所有接入多平台都能够查询到此用户身份;

平台间用户身份独立,要实现平台间用户身份独立,则需要在用户系统用户身份的基础上创建一个平台的用户身份。

1. 用户系统多平台打通

名词解释

Appid:接入用户系统时首先分配,用于区别接入的各个app;

Unionid:用户手机注册时,由用户系统根据手机号创建,在用户系统作为用户唯一身份标识;

Appuserid:用户注册时,由app服务端根据union或者第三方授权的openid创建,在app内作为用户唯一的身份标识。

基本原则

手机号作为用户系统账号的注册的唯一途径,根据手机号在用户系统服务端创建并保存unionid;app服务端根据unionid创建并保存appuserid,且将unionid对应保存;

用户系统同一unionid可对应不同的appuserid;

使用第三方openid授权的注册用户不计入用户系统仅存在app服务端作为单app用户,即unioid为空只生成appuserid;第三方授权包括微博微信,QQ,Facebook,Twitter。

用户系统设计:前端设计和多平台账号打通_第1张图片
 1. 手机号注册主流程为:用户注册时,用户系统服务端需要验证手机号+验证码是否为真,此手机号是否已有对应unionid;若有提示已注册,请登录;若无创建对应unionid,app服务端根据unionid创建appuserid。至此成功生成了用户系统身份及当前app用户身份。

 2. 手机号登陆主流程为:用户登录时,用户系统服务的验证手机号+密码是否为真,此手机号是否有对应unionid,若有,则说明此用户有用户系统身份。

还需要app服务端需要查询是否有对应的appuserid,若有说明此用户有此app身份,直接用其appuserid登录;若无则说明是用户系统内其他联合app注册用户根据unionid创建此app的用户身份,至此登录成功。

用户系统是大多数app都会有多构成,单一的用户系统也并不那么复杂,但是若要构建产品矩阵进行多平台间的用户打通,加上帐号绑定与解绑,并不是一时半会能够想清楚的需求,若大家感兴趣为会继续补充帐号绑定和账号安全产品应该关心和设计的事情。

你可能感兴趣的:(用户系统设计:前端设计和多平台账号打通)