angularjs - 系统时间更改后 JWT 刷新

标签 angularjs node.js linux express jwt

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

最佳答案

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

- 完全不使用过期时间

- 使用刷新 token

- 撤销所有已发行的 token

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

 jti - time diff

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

关于angularjs - 系统时间更改后 JWT 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43040006/

相关文章:

linux - flutter 桌面 : how to hide a window (and keep the process alive)?

jquery - 外部数据加载到数据网格后在 Angular 中注册 ng-click

javascript - $ionicPlatform.ready 未触发

javascript - 在浏览器的子窗口中登录完成后通知父窗口

javascript - HTML 未呈现 - Express

c - Linux 中的多线程服务器

linux - 如何在 RHEL 中将 GCC 从 4.x.x 升级到 GCC 5.x.x?

angularjs - 如何删除angularjs中的$ rootScope变量?

javascript - ng-repeat 内的 ng-form 不更新子表单。$subscribed

javascript - 可以多次 require() 同一个文件吗?