引言
本文内容来源于官方网站,让我们来了解下JWT
官网地址
https://jwt.io/
什么是JWT?
JWT是一个开放标准(RFC 7519),完整的名称是JSON Web Token,以下都简称JWT,它是一种紧凑且独立的以JSON对象的形式在各种场景下安全地传输信息。因为它是数字签名的,可以对它进行验证。可以使用一个秘密对JWT进行签名(使用HMAC算法)或使用RSA或ECDSA。
什么时候应该使用JWT?
以下是一些适合使用JWT的场景:
- 授权
认证授权是使用JWT最常见的场景。一旦用户登录,每个后续请求都将包括JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录是当今广泛使用的一种特性,因为它开销小,而且能够很容易在不同的域下使用,也就是我们常说的跨域。
- 信息交换
JWT是在各场景之间安全地传输信息的一种好方法。因为JWT可以进行签名,例如,使用公钥/私钥对,你可以根据公钥/私钥对来判断请求信息是否有效。此外,由于签名是使用报头和负载计算的,你还可以验证内容有没有被篡改。
JWT的结构
JWT以其紧凑的形式由点分隔的三个部分组成(.),它们是:
- Header(标头)
- Payload(负载)
- Signature(签名)
因此,JWT通常是下面这样的形势
Header.Payload.Signature
我们针对不同的部分别来介绍:
标头(Header):
标头典型由两个部分组成:令牌的类型(即JWT)正在使用的签名算法(如HMAC SHA 256或RSA)。
例如:
{ "alg": "HS256