用户体系在电商中必不可少。为了更好的维系用户,方便系统服务开发,都会设计用户体系。下面主要是结合我们自己公司的用户体系,记录下自己对用户体系的一些理解。
一个uid对应一个第三方账号ID,一个用户可以有多个uid ,但只有一个uin,通过绑定手机号,将uid绑定到uin上,订单、积分、礼包都是在uin维度上的,会员就是uin的概念。
什么是uid?为什么要做uid?
用户通过第三方登录时,会有一个第三方的账号ID,每个账号ID就对应一个uid。所以uid是账号ID。
各个平台的账号ID不一致,为了标准化,方便自己的业务调用,因此每个账号ID,都用我们自己的uid统一一下。
什么是uin?为什么要有uin?
uin是标识唯一自然人的。我们可以用身份证号、手机号、指纹、虹膜等能唯一区分自然人的信息来标识一个自然人。身份证号,太隐私,重要信息太多,一般用户不愿意泄露。一般用手机号做唯一标识。
为了打通多个第三方账号,方便用户。
多个uid怎么绑定到一个uin上?
当用户注册、登录时,如果用手机号注册,我们就给他生成一个uid,同时生成一个uin,然后将这个uid绑到这个uin上;如果用其他账号注册、登录,就只生成一个uid,然后会提示他绑定手机号,当用户输入手机号后,若是能查到这个手机号,那这个用户就有uin,直接将现在的uid绑定到uin上即可;如果查不到uin,则重新生成一个uin,再将uid绑定到uin上。
注:这里的手机号就代指 【用户唯一标识】,可用作唯一标识的不仅仅是手机号。例如:指纹、身份证等。
账号会记录什么信息?信息的密度和粒度?
uid,uin,平台类型,平台账号ID,用户凭证及其他用户信息。信息的密度和粒度,这个根据业务决定。业务需要的权限,业务需要的信息。
第三方对接的时候的问题?
一般第三方不会直接泄露用户密码,而是通过处理,给一个用户凭证。我们根据这个用户凭证再去获取用户信息。例如:微信。我们要首先引导用户同意授权,获取code,然后通过code、appid、secret换取网页授权access_token(用户凭证),最后才能用access_token拉取用户信息。
为什么要有sessionkey?
网络传输过程不安全,频繁用账号、密码传输,会增大密码被泄漏的几率。所以,我们只在第一次登陆的时候,需要账号密码,然后生成一个sessionkey,之后的一段时间内,就用sessionkey验证身份。sessionkey的设计方式有很多。简单的就直接用账号、密码、机器码、随机数等加密。
验证码,邮箱,扫二维码这些方式是为了什么?
这些是为了证明你是这个账号的注册者。我们暂且相信手机是在你手里的,邮箱也是只有你自己知道的。