6. 未保护的 JWT (Unsecured JWTs)
为支持 JWT 内容通过 JWT 内部签名和/或加密以外的方式获得保护的用例 (例如对包含 JWT 的数据结构进行签名), JWT 也可以在没有签名或加密的情况下创建 (MAY). 未保护 JWT 是一种 JWS, 它使用 "alg" 头部参数值 "none", 并使用空字符串作为其 JWS 签名值, 如 JWA 规范 [JWA] 所定义; 它是以 JWT 声明集作为 JWS 载荷的未保护 JWS.
6.1. 未保护 JWT 示例 (Example Unsecured JWT)
下面的 JOSE 头部示例声明被编码对象是未保护 JWT:
{"alg":"none"}
对 JOSE 头部 UTF-8 表示的字节进行 Base64url 编码, 得到以下编码后的 JOSE 头部值:
eyJhbGciOiJub25lIn0
下面是一个 JWT 声明集示例:
{"iss":"joe",
"exp":1300819380,
"http://example.com/is_root":true}
对 JWT 声明集 UTF-8 表示的字节进行 Base64url 编码, 得到以下编码后的 JWS 载荷 (换行仅用于显示):
eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFt
cGxlLmNvbS9pc19yb290Ijp0cnVlfQ
编码后的 JWS 签名为空字符串.
按此顺序将这些编码部分用句点 ('.') 字符连接, 得到完整 JWT (换行仅用于显示):
eyJhbGciOiJub25lIn0
.
eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFt
cGxlLmNvbS9pc19yb290Ijp0cnVlfQ
.