【问题标题】:JWT refresh after system time change系统时间更改后 JWT 刷新
【发布时间】:2017-08-19 18:47:18
【问题描述】:

我正在开发一个 web 前端来配置一个硬件设备(几乎就像一个路由器),它运行一个 nodejs 后端来为配置的 Angular 前端提供服务。我使用 JWT 来保护后端的无状态请求。一个特点是通过前端设置系统时间,通过向后端发出命令,设置本地机器时间,来处理时区。问题是,当时间更改超过过去 30 分钟时,由于会话超时,用户会被注销。解决它的最佳方法是什么?我的方法是将超时设置为无限期,更改系统时间并将超时更改回 30 分钟,使用刷新令牌。还有其他想法吗?谢谢。

【问题讨论】:

    标签: angularjs node.js linux express jwt


    【解决方案1】:

    您可以实现刷新令牌。因此,只要访问令牌过期,用户就可以使用刷新令牌请求新的访问令牌。

    【讨论】:

      【解决方案2】:

      如果您问我,当系统时间可以更改时,在 JWT 中使用过期时间是没有意义的。所以我的选择是:

      - 根本不使用过期时间

      - 使用刷新令牌

      - 撤销所有已发行的令牌

      - 时间历史:通过计算旧代币的发行日期来接受旧代币。您可以通过添加唯一且增量的jti 标识符来了解令牌的发布时间。当系统时间发生变化时,存储当前的jti值和旧时间与当前时间的差

       jti - time diff
      

      超过最大过期时间可以清空列表

      【讨论】:

      • 谢谢,我现在实现了刷新令牌策略,似乎工作正常。
      猜你喜欢
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      相关资源
      最近更新 更多