一、什么是JWT?了解JWT,认知JWT
首先jwt其实是三个英语单词JSON Web Token的缩写。通过全名你可能就有一个基本的认知了。token一般都是用来认证的,比如我们系统中常用的用户登录token可以用来认证该用户是否登录。jwt也是经常作为一种安全的token使用。
JWT的定义:
JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。
JWT特点:
-
简洁(Compact): 可以通过URL,POST参数或者在HTTP header发送,因为数据量小,传输速度也很快
-
自包含(Self-contained):负载中包含了所有用户所需要的信息,避免了多次查询数据库
二、JWT构成或者说JWT是什么样的?
2.1.JWT结构
JWT主要包含三个部分之间用英语句号'.'隔开
- Header 头部
- Payload 负载
- Signature 签名
注意,顺序是 header.payload.signature
最终的结构有点像这样: leftso.com.blog 当然真实的jwt不可能是这么简单的明文
2.2.JWT的头部(Header)
在header中通常包含了两部分:token类型和采