用户模型之三层身份模型

3 sec read

先前介绍过三户模型,这天要介绍的是三层身份模型,从使用层面,三户模型更加适合交易类网站,三层身份模型可能更加适合社交性质的网站。三层身份模型将用户分层三个层次,分别为:账户标识符,登录标识符和公开标识符。翻译成大白话可以是:账户ID、登陆账号、昵称。

账户标识符(DB Key)

从软件工程的角度,需要在数据库中存在一个用户标识(key)来记录每个用户的记录。这个用户标识可能会被用在Cookies或者URL中,这个账户标识符必须是永久的、唯一的。通常是由系统自动生成的一个ID,这个ID不受用户的控制,从用户角度这个标识符应该是不不可见或至少是惰性的,这个标识符不应该与一些公共名称,比如手机号或邮箱。

登录标识符(会话认证)

在创建与账户标识符关联的有效会话(Session)时,登陆标识符时必须要的,他们用来从服务中获取授权。通常由唯一的账号/密码对表示(这里的账号可以是邮箱或手机号,也可以是用户选择的用户名)。注意,账户/密码并不是一定需要存在的,笔筒通过oAuth形式的授权登陆(类似微信登陆、微博登陆等)。

将登陆标识符与账户标识符分开,可以使得用户更加容易的改变登陆方式。由于账户标识符不需要更改,因此可以避免更换登陆方式或登陆账号带来的数据迁移问题。最重要的是,可以提供多个不同登陆标识符附加到单个账户上,从而可以允许服务聚合从多个身份供应商收集的信息。(如授权获得微信或微博的个人信息)

公开标识符(社会标识)

与账户标识符和登陆标识符不同,公开标识符标识用户希望如何被服务商的其他用户感知。在线用户的公共标识符通常是复合对象:照片,昵称,可能还有年龄,性别和位置。它为任何观众提供了足够的信息,可以快速解读个人背景。公共标识符通常链接到详细的用户配置文件,其中可以进一步识别身份。公开标识符在某些情况下需要唯一(比如类似微博的@功能),有时是不需要唯一的(如微信的昵称)。

参考链接:http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

C语言学习:size_t

在学习C语言的时候,遇到了一个新的数据类型size_t,截止目前也没有完全理清这个类似的具体场景及出现的原因。
44 sec read

C语言学习:main()函数的正确写法

C语言虽然是一门古老的语言,但是其标准一直在完善,所以很多以前支持的语法在到当前已经不能在使用了。 C语言的版
41 sec read

Scipy数学函数的Scala实现

最近在推进项目的时候,遇到需要将线下的Python代码转化成线上的集群代码,由于机器代码环境是Scala,所以
4 min read

发表评论

电子邮件地址不会被公开。 必填项已用*标注