JWT令牌刷新(滑动会话)和签名



我是JWT的新手,我最终继承了使用JWT的代码库。现在有一些我面临的非常基本的问题,我找不到任何答案。这个问题不是基于代码的,所以请忍受我。

让我们说我的JWT令牌有效期为4个小时。这是我的要求/约束

  1. 如果用户在3小时59分钟时工作。他们的会议应延长2个小时,不应要求他们重新输入凭证。

  2. 客户端Java脚本不得以任何方式缓存用户凭据。

  3. 可以使用新的jwt代币刷新JWT令牌...但是您不得在服务器上提出的每个请求中执行此操作。因此,客户必须在适当的时候智能刷新JWT令牌。您不得尝试对您对应用程序提出的每个请求发出新的令牌,因为我们最终会在会话过程中生成1000秒的活动令牌,并且所有这些都有活动性。这使签名要求更加困难。

  4. 用户单击签名后。JWT令牌不应再可用。即使其终身时间仍然有效。

  5. 如果发生签名。所有发行的令牌(作为会议扩展的一部分)都应无效。不仅是最后一个。

我开始阅读有关JWT的文章,但是JWT似乎无法满足我的要求。这些要求很容易满足会话ID方法。但是我还不想放弃JWT。

JWT Life Extension

您可以与旧的JWT发行JWT。您的客户端应用必须在接近到期时间时请求新的JWT。客户知道阅读exp索赔的到期时间,并可以调用刷新服务以获取新的令牌。如果客户端应用关闭,则JWT将过期,并且用户必须再次出示凭据

注销

建议让令牌过期,但是您可以使用黑名单来存储仍然有效但不能用于身份验证的JWT:

  • 用户单击注销

  • 在接近到期时间的售票后

您需要添加到JWT唯一标识符jti。黑名单将包含jtiexp。当前时间> exp可以丢弃条目。

请参阅无效的客户端JWT会话

最新更新