Web services 独立用户身份验证模块

Web services 独立用户身份验证模块,web-services,architecture,module,Web Services,Architecture,Module,在我的组织中,我们正朝着模块化的软件体系结构迈进。。我们仍处于起步阶段,目前正在开发用户身份验证(UA)模块 我正在寻找有关用户身份验证模块方面最佳实践的信息 我目前的想法如下: 客户端使用登录详细信息查询UA模块 UA模块检查登录详细信息。如果有效,UA模块将创建并存储访问令牌,并将该令牌与已验证用户的唯一ID相关联 令牌被发送回客户端。客户端存储令牌 每当客户端需要身份验证时,它都会使用令牌查询UA模块。如果令牌有效,UA模块返回用户的唯一ID;如果令牌无效,则返回错误代码 如果对这些方

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

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

我目前的想法如下:

  • 客户端使用登录详细信息查询UA模块
  • UA模块检查登录详细信息。如果有效,UA模块将创建并存储访问令牌,并将该令牌与已验证用户的唯一ID相关联
  • 令牌被发送回客户端。客户端存储令牌
  • 每当客户端需要身份验证时,它都会使用令牌查询UA模块。如果令牌有效,UA模块返回用户的唯一ID;如果令牌无效,则返回错误代码
如果对这些方法有任何批评,我将不胜感激

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

我的想法是,令牌应该有与之相关联的到期日,工作进程应该定期清理这些令牌。这样做对吗


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

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


当用户发送带有令牌的请求时,查看令牌是否超过了到期日期(即当前时间>发行时间+到期时间段)。这将使您不用运行工作程序来清理旧令牌。

如果不清理令牌,DB不会增长到拥有太多令牌吗?这就是我困惑的地方,我想你错过了一对一的部分,本质上,在任何给定的时间点,只为一个客户分配一个令牌。因此,新令牌的发布会清除旧令牌,并且您永远不会拥有比客户端更多的令牌。