gpt4 book ai didi

session - 当我们有客户端 session 时,为什么需要 JWT?

转载 作者:行者123 更新时间:2023-12-02 04:06:52 25 4
gpt4 key购买 nike

据我所知,JWT 是无状态 token ,它存储有关客户端声明的签名信息,并通过授权 HTTP header 传递到服务器。

我的问题是,当我们已经有了客户端 session ( https://github.com/mozilla/node-client-sessions )时,为什么还需要 JWT?客户端 session 在概念上是相同的。它们是包含签名信息的 cookie,经过验证后意味着 cookie 尚未被篡改。此外,客户端 session 存储在 cookie 中并通过 Cookie HTTP header 传递。这是同一件事,只是用不同的词。我错了吗?

那么,为什么 JWT 还在呢?我可以理解,也许重点是标准化身份验证 token 的工作方式,但我们在没有基于 session ID 的标准的情况下相处得很好(每个实现都按照自己的方式行事)。另外,为什么 JWT 不使用 cookie 作为传输手段。使用 cookie,您不需要为每个请求显式发送正确的 header (简化 Ajax 请求)。

我错过了什么吗?

最佳答案

JWT token 是经过签名的 JSON 格式文档,用于声明有关用户(或任何主体)的声明。如果您信任 token 的发行者,您就信任 token 中的声明,并可以据此做出授权决策。

JWT token 通常用于调用外部 Web API。这些 API 不一定与您的网站位于同一域中,因此不能使用与您的网站相同的 cookie。 JWT token 用于 REST 服务,因为它们不需要在服务器上存储任何 session 信息。使用 JWT token 也不易受到 CSRF 的影响。攻击。

关于session - 当我们有客户端 session 时,为什么需要 JWT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997520/

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