JWT 介绍
-
JWT 是 JSON Web Token 的缩写,是一种开放标准(RFC 7519),即基于 JSON 对象的编码,并通过这个编码传递信息。
-
JWT 会通过 HMAC、RSA、ECDSA 等算法进行加密。
-
通常利用 JWT 来对用户进行验证,也就是说用户会先请求身份凭证服务器拿到该JWT,然后,只要用户携带这个 JWT 向业务服务器请求资源,如果这个 JWT 是有效的,那么就能获取资源。
JWT 的组成
JWT 的结构可以看作是三个 JSON 对象,并且用点(.)来分隔,这三个部分会各自进行编码,组成一个 JWT 字符串。也就是变成:xxxxx.yyyyy.zzzzz
Header(头部)
由两部分组成:
-
alg(算法) 也就是 token 被加密的算法,如 HMAC、SHA256、RSA。
-
typ(类型) 也就是 token 的类型,基本上就是 JWT。
示例:
{
"alg": "HS256",
"typ": "JWT"
}
然后进行 Base64 进行编码。Base64 是通过 64 个字符来表示二进制数据的一种方法,编码的方式是固定的而且可以逆向解码的,并不是那种安全的加密算法。