这里给出了一个普通网络应用的示例。
传统上,我们使用会话并设置超时= 30分钟。如果会话到期,我们将重定向用户登录。 (当用户/浏览器与Web应用程序交互时,将延长过期时间)
使用JWT,如何实现?
我知道"令牌刷新",当短时令牌到期时,它将使用刷新令牌刷新新的令牌。
但看起来它并不关心用户是否与网络应用互动。因此,只要刷新令牌处于活动状态,浏览器就可以始终获得新的短命JWT。
所以问题是:如果用户在一段时间内没有活动>>如何使用JWT扩展令牌到期时间?
答案 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