[电子商务网站设计] 之 Passport

 

[电子商务网站设计] 之 Passport

从所承担的功能上来说,Passport 是一个系统级别的服务,而不仅仅用来进行用户管理。对于任何一个网站而言,随着业务的发展,多业务的网站群整合不可避免,那么作为整合的通道之一,用户数据共享自然就是一个关键点。

Passport 在设计之初就应该独立于业务逻辑。一般情况下它担负如下任务:

1. 用户统一注册、管理。提供页面或者相关接口供其它业务站点调用。
2. 单点登录 (Single Sign On)。为多个站点共享登录票据,实现站点群之间的无限漫游。
3. 提供用户角色管理。这个角色后台管理员角色有所不同,它无需权限管理,仅用来区分用户的 VIP 级别。
4. 用户活跃度跟踪管理。定期清理和提醒睡眠账号对于网站而言也是非常重要的。

下图是一个简单的 Passport 架构设计

uploads/200608/21_153515_passport.png


1. 将用户分为 UserBase、User 两个类,因为多数时候我们只需获取用户基本信息即可。
2. Passport、Roles 采取静态类设计,封装了所需的全部方法。
3. Passport.Web 封装 SSO 的相关操作。
4. 采取 IoC 体系,便于升级和数据库迁移。

另外,在用户标识设计上,建议采取"内部ID"和"外部ID"两种方式。

如:
public class UserBase
{
  public Guid Id { get; }
  
  public string Username { get; set; }
}

"内部ID"采取GUID表示其唯一性,由系统注册用户账号时自动生成,所有与Passport关联的业务逻辑都是用该ID作为用户唯一识别符号。而"外部ID"—— Username,则是"内部ID"的一个助记符,一般是用户注册时输入的个人用户名,多使用电子邮件账号。用户使用"外部ID"进行注册、登录、找回密码等操作。如此设计的好处就是用户可以随时更改其 Username。在由于离职等原因造成用户更换邮箱时,能更换新的用户名就显得设计上的人性化了。当然,在数据库中Username也应该是唯一,不可重复的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值