概念
JWT(JSON Web Token)
定义:一种信息标准,是json信息加密后生成的token令牌,因此常用于信息交换和授权。
由三部分组成,中间用 . 连接
- 头部(header)
- 载荷(payload)
- 签证(signature)
组成
头部
json信息
{"typ":"JWT","alg":"HS256"}
声明token的类型是JWT,加密算法是HS256
** HS256 对称算法 双方共用一个密钥
对其进行Base64加密,我们可以获得第一部分
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
载荷
载荷以实体的形式携带数据。官方有一些推荐的字段(包括签发者,签发时间等等),我这里就直接写需要传递的数据了
json信息
{"sub":"1234567890","name":"John Doe","iat":1516239022}
对其进行Base64加密,我们可以获得第二部分
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
签证
将第一部分和第二部分用 . 连接起来
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
服务端进行签证,对上面进行组合加密(密钥,加盐),得到第三部分
9daWxcZAf7-8Lv6MJifafwNIuSRn0-1awHGWbaa6zWw
最后
将三部分用 . 连接在一起,这就是一个完整的JWT (token值)
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.9daWxcZAf7-8Lv6MJifafwNIuSRn0-1awHGWbaa6zWw
JWT的官网,可以测试下
java项目使用jwt,https://blog.csdn.net/qq_44972847/article/details/109257035