Session 当我们有客户端会话时,为什么需要JWT?

Session 当我们有客户端会话时,为什么需要JWT?,session,cookies,session-cookies,jwt,json-web-token,Session,Cookies,Session Cookies,Jwt,Json Web Token,我知道JWT是无状态令牌,它存储关于客户机声明的签名信息,并通过授权HTTP头传递给服务器 我的问题是,既然我们已经有了客户端会话(),为什么还需要JWT?客户端会话在概念上是相同的。它们是包含签名信息的cookie,经过验证后,表示cookie没有被篡改。此外,客户端会话存储在cookie中,并通过cookie HTTP头传递。这是同一件事,只是用了不同的词。我错了吗 那么,为什么JWT还存在?我可以理解,也许关键是要标准化身份验证令牌的工作方式,但我们没有基于会话ID的标准(每个实现都有自己

我知道JWT是无状态令牌,它存储关于客户机声明的签名信息,并通过授权HTTP头传递给服务器

我的问题是,既然我们已经有了客户端会话(),为什么还需要JWT?客户端会话在概念上是相同的。它们是包含签名信息的cookie,经过验证后,表示cookie没有被篡改。此外,客户端会话存储在cookie中,并通过cookie HTTP头传递。这是同一件事,只是用了不同的词。我错了吗

那么,为什么JWT还存在?我可以理解,也许关键是要标准化身份验证令牌的工作方式,但我们没有基于会话ID的标准(每个实现都有自己的方式)。此外,JWT为什么不使用cookies作为传输手段。使用cookie,您不需要为每个请求显式地发送正确的头(简化Ajax请求)


我遗漏了什么吗?

JWT令牌是经过签名的JSON格式文档,用于断言关于用户(或任何主体)的声明。如果您信任令牌的颁发者,则您信任令牌中的声明,并可以基于此做出授权决策


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

注意:根据此处的Stormpath guys()-如果JWT令牌存储在cookie中,则容易受到CSRF攻击。当然,如果您将JWT存储在cookie中并使用它对API进行身份验证,则您将返回隐式身份验证。JWT令牌通常不存储在cookie中,而是作为承载令牌发送到
授权
HTTP头中。另见本文: