gpt4 book ai didi

带有 JWT 的 AngularJS 或 SPA - 到期和刷新

转载 作者:行者123 更新时间:2023-12-04 01:03:56 25 4
gpt4 key购买 nike

我了解JWT和单页面应用在登录和JWT签发方面的流程。但是,如果 JWT 已过期,并且服务器没有针对每个请求发出新的 JWT,那么最好的续订方式是什么?有一个刷新 token 的概念,但在 Web 浏览器中存储这样的东西听起来像是一张金票。

IE 我可以轻松进入浏览器的本地存储并窃取刷新 token 。然后我可以去另一台电脑给自己一个新的 token 。我觉得 JWT 中引用的数据库中需要有一个服务器 session 。因此,服务器可以通过刷新 token 查看 session ID 是否仍处于事件状态或无效。

在 SPA 中实现 JWT 并在用户处于事件状态时处理新 token 发行的安全方法是什么?

最佳答案

如果您的服务器没有其他限制,您需要检查 1 小时不事件以注销用户,则每 15 分钟更新一次 token (如果它可以使用 30 分钟)。如果你只是想要这个短暂的 JWT 并不断更新它,它会起作用。

我认为使用 JWT 的一大优势是实际上不需要服务器 session ,因此不使用 JTI。这样,您根本不需要同步,因此这将是我建议您遵循的方法。

如果您想在用户处于非事件状态时强行注销,只需设置一个在一小时内过期的 JWT。有一个 $interval 每隔约 50 分钟它会根据旧的 JWT 自动获取一个新的 JWT,如果在过去 50 分钟内至少完成了一个操作(您可以有一个请求拦截器,它只计算请求以检查他是否处于事件状态)就是这样。

这样你就不必将 JTI 保存在数据库中,你不必有一个服务器 session ,这不是比另一个更糟糕的方法。

你怎么看?

关于带有 JWT 的 AngularJS 或 SPA - 到期和刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29070455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com