如果用户在使用JWT的一段时间内没有活动,如何延长令牌过期时间?

时间:2016-07-27 06:06:40

标签: jwt

这里给出了一个普通网络应用的示例。

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

使用JWT,如何实现?

我知道"令牌刷新",当短时令牌到期时,它将使用刷新令牌刷新新的令牌。

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

所以问题是:如果用户在一段时间内没有活动>如何使用JWT扩展令牌到期时间

2 个答案:

答案 0 :(得分:2)

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

当用户什么都不做的时候,没有发出新的JWT,超时后JWT将变为无效。

答案 1 :(得分:1)

如果用户处于活动状态,则每次用户进入Web应用程序并且每个时间段(例如1小时)都会发出新的JWT

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

如果浏览器无法请求新令牌(已关闭,未处于活动状态等),则令牌将过期,您可以通过某种方式将用户重定向到登录,如果服务器会话过期

选中此JWT (JSON Web Token) automatic prolongation of expiration