如果用户在使用JWT的设定时间段内未处于活动状态,如何延长令牌过期时间?

如果用户在使用JWT的设定时间段内未处于活动状态,如何延长令牌过期时间?,jwt,Jwt,这里给出了一个普通web应用程序的示例。 传统上,我们使用会话并将超时设置为30分钟。若会话过期,我们将重定向用户登录。(当用户/浏览器与web应用交互时,过期时间将延长) 使用JWT,如何实现这一点? 我知道一些关于“令牌刷新”的事情,当短期令牌到期时,它将使用刷新令牌刷新一个新的令牌 但看起来它并不关心用户是否与web应用程序交互。因此,只要刷新令牌处于活动状态,浏览器始终可以获得新的短期JWT 因此,问题是:如果用户在设置的时间段内未处于活动状态,如何使用JWT延长令牌过期时间?如果用户处

这里给出了一个普通web应用程序的示例。

传统上,我们使用会话并将超时设置为30分钟。若会话过期,我们将重定向用户登录。(当用户/浏览器与web应用交互时,过期时间将延长)

使用JWT,如何实现这一点?

我知道一些关于“令牌刷新”的事情,当短期令牌到期时,它将使用刷新令牌刷新一个新的令牌

但看起来它并不关心用户是否与web应用程序交互。因此,只要刷新令牌处于活动状态,浏览器始终可以获得新的短期JWT


因此,问题是:如果用户在设置的时间段内未处于活动状态,如何使用JWT延长令牌过期时间

如果用户处于活动状态,则在用户每次输入web应用程序时以及在每个时间段(例如1小时)发出新的JWT

如果用户未处于活动状态,但浏览器处于打开状态,则可以在后台向服务器请求新的JWT。必须在到期之前请求令牌,然后在localStorage或cookie中替换令牌。此技术也可应用于独立应用程序

如果浏览器无法请求新令牌(已关闭、未激活等),则令牌将过期,您可以以服务器会话过期时的某种方式重定向用户登录


选中此项

当用户与您的服务器交互时,您的服务器可以决定发出另一个具有新过期时间的JWT(不是在每次请求时,而是在当前JWT过期时间前5分钟)。如果客户端收到一个新的JWT,那么它将替换旧的JWT

当用户不执行任何操作时,不会发出新的JWT,并且JWT将在超时后失效