JWT与Token

JWT (JSON Web Token) 和 Token 都是用来在用户和服务器之间传输信息的机制。但它们之间还是存在一些重要的区别。

Token:

Token通常是服务端生成的一串字符串,作为客户端请求的标识,因为HTTP协议是无状态的,当客户端通过用户名和密码请求服务器时,服务器根据验证结果回应一个Token,再由客户端保存,之后客户端的每次请求都会携带这个Token值,服务器只需要验证这个Token值就可以确认客户端的身份。

总的来说,Token是登录凭证,可以是任意字符串,常被用来验证用户身份和授权信息。

JWT (JSON Web Token):

JWT是Token的一种实现方式,它用JSON封装了Token信息,然后再进行加密。

JWT通常由三部分组成:头部(header),载荷(payload),签名(signature)。

  • 头部(header)存放token的类型,通常使用"JWT",以及加密的算法名称。
  • 载荷(payload)存放实体,也就是需要传递的数据。JWT的标准定义包括一些预定义的字段,用来在各个不同的系统之间传递公共信息。例如,iat(签发时间),exp(过期时间),sub(主题),aud(受众)等。
  • 签名(signature)是对前两部分的签名,防止数据被篡改。

总的来说,JWT是Token的一种,关键在于它标准化了一套可以跨语言的Token生成和验证方式。

区别:

  1. JWT自身包含验证信息,比如签名,而Token则需要服务器进行验证。
  2. JWT格式固定,可包含多种信息,而Token格式不固定,只需要包含基本的唯一性信息即可。
  3. 由于JWT的载荷部分默认是没有加密的,所以不建议将敏感信息放在载荷部分。

你可能感兴趣的:(Java学习,java)