如何处理 JWT 令牌过期?
How do I handle JWT token expiration?
我正在使用 Spring Boot 实现 jwt。我们创建了一个结构,其中登录过一次的用户具有颁发的令牌值,并在再次登录时发送令牌值。到期时间设置为一天(86400 秒)。
ExpiredJwtException io.jsonwebtoken.ExpiredJwtException: JWT expired at 2021-11-21T04:25:31Z. Current time: 2021-11-22T03:45:58Z, a difference of 84027224 milliseconds. Allowed clock skew: 0 milliseconds.
上述异常是针对过期令牌抛出的。由于此令牌已过期,我想刷新令牌以向用户颁发新令牌。我该怎么办?
简而言之,当ACCESS_TOKEN到期时,您需要使用REFRESH_TOKEN来获得新的ACCESS_TOKEN.
JWT 有两种令牌:ACCESS_TOKEN 和 REFRESH_TOKEN。
ACCESS_TOKEN: 当用户登录时,授权服务器会发出一个访问令牌,这是客户端应用程序可以用来安全调用API 服务器。
REFRESH_TOKEN: ACCESS_TOKEN 寿命短。所以当 ACCESS_TOKEN 过期时 REFRESH_TOKEN 用于获取新的 ACCESS_TOKEN.
所以综上所述,当授权成功时,你需要发出两个令牌ACCESS_TOKEN和REFRESH_TOKEN。当 ACCESS_TOKEN 到期时,您需要使用 REFRESH_TOKEN 调用另一个 api 以获得新的 ACCESS_TOKEN.
只要刷新令牌有效且未过期,客户端应用程序就可以获得新的访问令牌。因此,具有很长生命周期的刷新令牌理论上可以赋予令牌持有者无限的权力来获取新的访问令牌以随时访问受保护的资源。因此,您需要针对给定的 REFRESH_TOKEN.
设置 ACCESS_TOKEN 的时长政策。
我正在使用 Spring Boot 实现 jwt。我们创建了一个结构,其中登录过一次的用户具有颁发的令牌值,并在再次登录时发送令牌值。到期时间设置为一天(86400 秒)。
ExpiredJwtException io.jsonwebtoken.ExpiredJwtException: JWT expired at 2021-11-21T04:25:31Z. Current time: 2021-11-22T03:45:58Z, a difference of 84027224 milliseconds. Allowed clock skew: 0 milliseconds.
上述异常是针对过期令牌抛出的。由于此令牌已过期,我想刷新令牌以向用户颁发新令牌。我该怎么办?
简而言之,当ACCESS_TOKEN到期时,您需要使用REFRESH_TOKEN来获得新的ACCESS_TOKEN.
JWT 有两种令牌:ACCESS_TOKEN 和 REFRESH_TOKEN。
ACCESS_TOKEN: 当用户登录时,授权服务器会发出一个访问令牌,这是客户端应用程序可以用来安全调用API 服务器。
REFRESH_TOKEN: ACCESS_TOKEN 寿命短。所以当 ACCESS_TOKEN 过期时 REFRESH_TOKEN 用于获取新的 ACCESS_TOKEN.
所以综上所述,当授权成功时,你需要发出两个令牌ACCESS_TOKEN和REFRESH_TOKEN。当 ACCESS_TOKEN 到期时,您需要使用 REFRESH_TOKEN 调用另一个 api 以获得新的 ACCESS_TOKEN.
只要刷新令牌有效且未过期,客户端应用程序就可以获得新的访问令牌。因此,具有很长生命周期的刷新令牌理论上可以赋予令牌持有者无限的权力来获取新的访问令牌以随时访问受保护的资源。因此,您需要针对给定的 REFRESH_TOKEN.
设置 ACCESS_TOKEN 的时长政策。