0

在我的组织中,我们正在向模块化软件架构迈进。我们仍处于起步阶段,目前正在开发用户身份验证 (UA) 模块。

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

我目前的想法如下:

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

我将不胜感激对这些方法的任何批评。

我也有兴趣知道如何处理代币的积累。显然,如果用户选择注销,则令牌将被删除。

我的想法是令牌应该有与之相关的到期日期,并且工作进程应该定期清理这些令牌。这是做事的正确方式吗?

请评论!参考文件也值得赞赏。

4

1 回答 1

1

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

当用户使用令牌发送请求时,查看令牌是否已过期(即当前时间> 颁发时间+ 过期时间段)。这将使您免于运行 Worker 来清理旧令牌。

于 2013-04-20T02:51:49.537 回答