提问者:小点点

如何在用户处于非活动状态一段时间后使JWT令牌失效


我想在用户不活动30分钟后自动使服务器端的JWT无效。

我知道如何为 JWT 设置有效期,但这会使令牌无效,无论用户是否处于活动状态。

所以我只想在用户30分钟不活动的情况下使令牌失效。

框架:Spring


共1个答案

匿名用户

JWT令牌的有效期从令牌发行者发行(iat声明)到到期(exp声明)。

在分布式系统中,有一个令牌发放者(授权服务器)和一个接受令牌的应用程序(资源服务器),资源服务器通过确保令牌在有效期内(iat和exp声明之间的范围)来确定令牌是否过期。

如果您想要一种方法来强制吊销令牌,并且即使在其有效日期范围内也不应再被接受,那么您需要依赖于资源服务器,从而必须检查令牌吊销列表以获取令牌的状态。虽然有实现这一点的方法,但本主题将详细介绍-我如何撤销JWT令牌?,通常认为,可靠地管理这一点的开销比它的价值更麻烦,更好的解决方案是使用短期令牌,例如10分钟(或任何适合您的令牌),并让需要令牌访问资源服务器的应用程序在到期时间前不久生成新令牌。