单独的用户验证模块

时间:2013-04-19 23:04:19

标签: web-services architecture module

在我的组织中,我们正朝着模块化软件架构迈进。我们还处于起步阶段,目前正在开发用户认证(UA)模块。

我正在寻找有关用户身份验证模块方面的最佳做法的信息。

我目前的想法如下:

  • 客户端使用登录详细信息查询UA模块
  • UA模块检查登录详细信息。如果它们有效,则UA模块会创建&存储访问令牌,将令牌与验证用户的唯一ID相关联。
  • 令牌被发送回客户端。客户端存储令牌。
  • 每当客户端需要身份验证时,它都会使用令牌查询UA模块。如果令牌有效,UA模块将返回用户的唯一ID,如果令牌无效,则返回错误代码。

我很感激对这些方法的任何批评。

我也有兴趣了解如何处理令牌的积累。显然,如果用户选择注销,则删除令牌。

我的想法是令牌应该具有与之关联的到期日期,并且工作人员进程应该定期清理这些令牌。这是解决问题的正确方法吗?

请评论!参考文件也很受欢迎。

1 个答案:

答案 0 :(得分:1)

您可以将令牌与问题时间戳一起存储在数据库字段中,并与客户端ID进行一对一映射。因此,当您重新签发令牌时,您将覆盖旧令牌。当用户注销时,将令牌置空。

当用户使用令牌发送请求时,查看令牌是否超过到期日期(即当前时间>发布时间+到期时间段)。这样可以避免运行Worker来清理旧标记。