如何在 Spring security 和 JwtBuilder 中处理 JWT 过期(我应该使用 cookie max age)

Posted

技术标签:

【中文标题】如何在 Spring security 和 JwtBuilder 中处理 JWT 过期(我应该使用 cookie max age)【英文标题】:How to handle JWT expiration in Spring security and JwtBuilder (should I use cookie max age) 【发布时间】:2016-11-21 02:29:53 【问题描述】:

JWT 令牌的过期字段是语义,还是应该用于检查令牌有效性而不是简单地设置包含 cookie 的最大年龄的 JWT 以对应过期时间?后面的选项似乎更简单,因为不需要额外的验证逻辑,Spring 会自动检测过期的 cookie。

在 JWT 令牌的情况下是否批准?

【问题讨论】:

【参考方案1】:

不适合使用 cookie 最大年龄。 JWT 是一种自包含的格式,独立于存储模式。在浏览器中可以通过任何可用的方式存储:cookie、localStorage、IndexedDB 等。在服务器或独立系统中,它可以以任何方式存储 id。不方便将令牌过期附加到存储模式,因为您无法控制它。

来看看RFC

“exp”(到期时间)声明标识了到期时间,在该到期时间或之后,JWT 不得被接受处理。处理“exp”声明要求当前日期/时间必须早于“exp”声明中列出的到期日期/时间。

所以必须检查过期时间(如果设置了字段)

【讨论】:

以上是关于如何在 Spring security 和 JwtBuilder 中处理 JWT 过期(我应该使用 cookie max age)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Security 无状态(jwt 令牌)中注销用户?

如何在 Spring security 和 JwtBuilder 中处理 JWT 过期(我应该使用 cookie max age)

Angular集成Spring Boot,Spring Security,JWT和CORS

使用带有spring security的keycloak JWT令牌时如何修复403

如何在 Spring Security 中为所有请求添加 jwt 身份验证标头?

如何使用 ReactJs 将 jwt 令牌提交给 Spring Security?