首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以缓存经过验证的JWT令牌以防止spring-boot应用程序中的重复验证过程

是否可以缓存经过验证的JWT令牌以防止spring-boot应用程序中的重复验证过程
EN

Stack Overflow用户
提问于 2020-01-23 19:33:41
回答 4查看 5.8K关注 0票数 2

我们有一个使用微服务架构的spring-boot应用程序。

我们有一个单独的身份验证服务,它提供了一个用RS256算法签名的JWT令牌。

从客户端到我们的主应用服务器的每个请求中都会发送这个令牌。我有验证签名的公钥。

现在,这个JWT令牌在来自客户端的每个API请求中被发送,因为我们的大多数URL都是受保护的。

缓存已经验证过的JWT令牌,以防止在同一用户的每个API调用中重复验证相同的令牌,这是不是一个好主意?

EN

Stack Overflow用户

发布于 2021-02-28 16:50:00

这不一定会增加安全问题,但您需要确保缓存只存储验证过的JWT数据,只要该令牌有效。否则,您将在终止会话时遇到问题。此外,出于这个原因,我建议使用LRU缓存,这样您就不必存储当前未使用的令牌。

@Mehrdad声称缓存令牌可以增加状态性。但是,在这种情况下,我不会说它是一个关键问题,因为其他没有在内存中缓存JWT的服务器仍然可以验证JWT。向上扩展的问题是缓存可能会变得太大,并在每台服务器上消耗太多内存。再说一次,如果LRU缓存与适当的参数一起使用,我也不认为这是一个大问题。他回答的最后一个建议是使用Redis。虽然这可能是一个很好的建议,但考虑到额外的网络延迟,它可能有点过头了。无论如何,内存缓存总是会更快。话虽如此,Redis是一个非常可行的解决方案,如果你想避免单个服务器重新进行验证,如果另一个服务器已经这样做了。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59877621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档