给出了一个普通web应用程序.的示例
传统上,我们使用会话并设置超时值= 30分钟。如果会话到期,我们将重定向用户登录。(当用户/浏览器与web应用程序交互时,过期时间将被延长)
使用JWT,如何实现?
我了解一些关于“令牌刷新”的内容,当短时间令牌过期时,它将使用刷新令牌刷新一个新令牌。
但看起来它并不关心用户是否在与网络应用程序交互。因此,只要刷新令牌是活的,浏览器总是可以得到一个新的短命JWT。
因此,问题是:如果用户使用JWT在设定的时间段内没有激活,如何延长令牌过期时间?
发布于 2016-07-26 23:19:58
如果用户处于活动状态,则在用户每次输入web应用程序时以及每一段时间(例如1小时)发出一个新的JWT。
如果用户不是活动的,但浏览器是打开的,则可以在后台向服务器请求一个新的JWT。必须在到期前请求令牌,然后在localStorage或cookie中替换令牌。这种技术也可以应用于独立的应用程序。
如果浏览器无法请求新令牌(已关闭、不活动等),则令牌将过期,您可以重定向用户以某种方式登录(如果服务器会话过期)。
检查这个JWT (JSON Web Token) automatic prolongation of expiration
发布于 2016-07-27 22:58:26
当用户与您的服务器交互时,您的服务器可以决定使用新的过期时间(不是在每次请求时,而是在当前JWT到期时间之前5分钟)发出另一个JWT。如果客户端接收到一个新的JWT,那么它将替换旧的JWT。
当用户什么也不做时,就不会发出新的JWT,超时后JWT将变得无效。
https://stackoverflow.com/questions/38606078
复制