JSON Web令牌如何工作?不确定与cookies有什么不同

时间:2015-05-07 09:02:22

标签: security cookies login token jwt

使用Cookie时,它们存储在服务器上,并与客户端请求中的内容进行比较。 JWT与之相比有哪些?他们被解码成他们的组件吗?

1 个答案:

答案 0 :(得分:3)

JSON Web签名(JWS)JWT未被“比较”任何东西;而是使用加密密钥验证。支持Various algorithms。验证JWT的系统必须能够访问用于验证特定JWT的相应密钥。

对于对称算法(HS{256,384,512}),使用HMAC构造验证包含令牌的JWS对象,其中SHA-2加密摘要由共享密钥键入,即用于生成令牌的相同密钥必须用于验证它。

对于非对称算法({RS,ES,PS}{256,384,512}),使用RSASSA-PKCSv1.5(RS),ECDSA(ES验证包含令牌的JWS对象)或使用SHA-2加密摘要的RSASSA-PSS(PS)算法,使用与用于签署JWS的私钥对应的公钥

JWS Internet-Draft中定义了验证JWS(JWT始终使用 JWS紧凑型序列化进行序列化)的过程。简而言之,令牌分为三部分:header(base64编码的JSON对象),payload(base64编码的八位字符串;对于JWT,这是JSON JWT声明对象)和签名( base64编码的八位字符串)。标头用于标识所使用的算法,此算法用于验证签名,该签名是在ASCII(BASE64URL(UTF8(Header)) || '.' || BASE64URL(Payload))之间计算的(此签名输入正是序列化的JWT,但不包括第二期。)