在我的情况下刷新令牌有什么意义

时间:2021-01-28 16:08:46

标签: reactjs security jwt wordpress-rest-api refresh-token

我正在使用 React (GatsbyJS) 的前端和 Wordpress 的后端制作 Web 应用程序。 现在我使用 JWT 进行身份验证,有效期为 7 天。然后我读到我也应该使用刷新令牌并使我的 JWT 持续大约 15 分钟以遵循“最佳实践”。

但我认为这样做的唯一好处是更好地预防 MITM 攻击 - 刷新令牌的使用频率明显降低,因此攻击者窃取的令牌有效期为 15 分钟而不是 7 天的可能性更高,并且他有用它做某事的时间更少。但无论如何我都在使用 HTTPS,所以我认为有人以这种方式窃取我的令牌的可能性非常低。

我的应用程序会以完全相同的方式存储这些令牌(仅限 http cookie),因此攻击者可以通过同样的努力窃取刷新和访问令牌。我是否遗漏了什么,或者使用刷新令牌真的没有意义?

我打算添加令牌黑名单,如果用户退出一次,该令牌将无法再使用。

我只在令牌中保留用户 ID。 因此,在我收到它并在后端对其进行解码后,我可以检查用户是否被禁止、最近更改了密码等,以便我做出决定如果我应该给他他想要的数据或者只是放在黑名单上。 我已经读过,当令牌中的数据发生变化或其他事情时,刷新令牌很有用,但我只保留了 ID...

我是对的,我可以省略刷新令牌吗?我想我不能比仅使用 http cookie 更安全地存储它们。

如果我能够使用普通的 http 会话,我会坚持下去,但是我的设置(我的前端没有以任何方式连接到 wordpress)不允许我在会话中使用 wordpress rest api,我有使用这些该死的 jwt 令牌。

更新 我可以看到使用短期 jwt 和长期刷新令牌进行静默刷新的小好处,但它仅在应用程序在浏览器中连续打开时才有效 - 我希望让用户保持登录状态几天。我可以在没有刷新令牌的情况下做到这一点。

0 个答案:

没有答案