likes
comments
collection
share

什么是JWT

作者站长头像
站长
· 阅读数 97

介绍

JWT全称JSON Web Token,是几年前就开始流行的一种鉴权方案,这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。

组成

整个JWT是一个字符串,组成为:头部.载荷.签名 例如: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiYXV0aCI6MSwiaWF0IjoxNjYzMzA3MzIxLCJleHAiOjE2OTQ4NDXXXXXX.oAcQtJkV-cCeEJTNXxb-gDpYiuYI-QEXr52v5auAnsk 前两段由Base64编码,第三段由算法加密钥进行签名。

头部

主要保存JWT自己的配置信息,例如签名类型、签名算法等.例如:

{"typ":"JWT","alg":"HS256"}

载荷

用来存储用户信息,将JSON转为字符串后变为Base64,里面通常保存了必要的用户信息,例如:用户ID、用户权限、签名时间、到期时间。例如:

什么是JWT

签名

未来防止头部和载荷被篡改和伪造,第三段使用指定的算法和密钥进行签名,在服务端会先对头部和载荷进行验证后才会进入指定路由。签名方式保存在头部中。

样例

大概原理就是这样,基本都是在登录或注册后保存在localStorage中。当然这只是一个非常简单的Demo。在时间过程中,JWT会自带很多的签名算法,在签名时会保存在头部中。同时在签名时会将签名和到期的时间戳保存在载荷中。

什么是JWT