jwt注销:在微服务体系结构中的服务之间共享列入黑名单的无效令牌

3zwtqj6y  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(347)

我正在从事一个涉及4项服务的微服务项目——身份验证服务、服务a、服务b和服务c。
所有服务都是使用spring boot实现的。身份验证服务负责验证登录用户并生成jwt承载令牌。每个service-a/b/c都有jwt过滤器,用于检查令牌的有效性,然后提供对rest API的访问。
现在我想实现注销功能。注销请求转到身份验证服务。身份验证服务使用redis。将令牌添加到设置了ttl的无效令牌列表中,以便在到期后自动删除令牌。
现在,服务a/b/c中的jwt筛选器如何访问黑名单令牌,以便rest api访问被批准/不批准?如果所有服务都部署在同一个系统中,那么这些服务可以轻松访问redis。如果服务部署在不同的系统中,它们如何访问无效令牌?
我是否应该实现发布/订阅消息,并且每个服务将侦听注销事件并更新其黑名单令牌
或者在微服务环境中有更好的方法吗?

agyaoht7

agyaoht71#

一种可能的解决方案是在api网关级别实现过滤器。请参阅下面的链接。。。https://softwareengineering.stackexchange.com/a/430024/395671

相关问题