我一直在阅读有关 JWT 的信息,据我了解,它是用户登录后服务器发送的令牌。用户必须在所有未来的 HTTP 请求中发送该令牌。这为服务器创建了一种无状态的方式来验证用户的请求。
现在我不明白的是,如果 JWT 在标头中发送并仅标记为 HTTP,为什么还需要 CSRF 令牌来防止 CSRF 攻击?我的理解是 JWT 和 CSRF 令牌都与用户相关联,并且 JWT 将同时用于这两个目的。
我了解使用了 CSRF 令牌,因此不会接受来自其他站点的 HTTP 请求。JWT 怎么不能做到这一点?是什么将 CSRF 令牌与 JWT 令牌分开,并允许它实现这种差异?
我一直在阅读有关 JWT 和 CSRF 令牌以及双重提交方法的文章,但我似乎无法理解或遗漏了一些东西。