官方 https://jwt.io

英文原版 https://www.ietf.org/rfc/rfc7519.txthttps://tools.ietf.org/html/rfc7519

中文翻译 https://www.jianshu.com/p/10f5161dd9df

1. 概述

JSON Web Token(JWT)是一种紧凑的、URL安全的方法用来表示

在两个部分之间的传输声明. 通常由2种实现: JWS=JSON Web Signature,JWE=JSON Web Encryption。实际上JWT包含了一个大家族。

https://tools.ietf.org/html/rfc7515 = JWS

https://tools.ietf.org/html/rfc7516 =JWE

https://tools.ietf.org/html/rfc7517 = JWK

https://tools.ietf.org/html/rfc7518 = JWA

https://tools.ietf.org/html/rfc7519 = JWT

https://tools.ietf.org/html/rfc7520 =JOSE

2.定义

仔细扣字眼去理解以上文绉绉的定义,可以发现 JW(*)家族并不是同级关系。

举个不是很恰当的例子:

一个json:

{"action":"8点进攻"},

对这个json做数字签名,用然后用 内容 || "." || 签名 的格式包装

{"action":"8点进攻"}.eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9

这个就是JWS

对这个json

{"action":"8点进攻"}

{"action":"8点进攻"}.eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9

加密,形成

05kLzcSr4qKAq7YN7e9jwQRb23

这个就是JWE.

以上例子说明JSE和JSW的核心区别是一个签名(数据没有被篡改,来源是真实),一个加密(明文无法被第三者知晓)。一般把JSE作为多JWT的实现用来做网站的请求验证。

3.结构

04-26 11:38