Skip to main content

6. Unsecured JWTs (无保护的JWT)

为了支持JWT内容通过JWT中包含的签名和/或加密以外的方式进行保护的用例(例如对包含JWT的数据结构进行签名),也可以 (MAY) 创建没有签名或加密的JWT。无保护的JWT (Unsecured JWT) 是使用"alg"头部参数值"none"的JWS,其JWS签名值为空字符串,如JWA规范 [JWA] 中所定义; 它是以JWT声明集作为其JWS有效载荷的无保护JWS。

6.1. Example Unsecured JWT (无保护JWT示例)

以下示例JOSE Header声明编码的对象是无保护的JWT:

{"alg":"none"}

对JOSE Header的UTF-8表示的字节进行Base64url编码,得到以下编码的JOSE Header值:

eyJhbGciOiJub25lIn0

以下是JWT声明集的示例:

{"iss":"joe",
"exp":1300819380,
"http://example.com/is_root":true}

对JWT声明集的UTF-8表示的字节进行Base64url编码,得到以下编码的JWS有效载荷(为便于显示添加了换行符):

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFt
cGxlLmNvbS9pc19yb290Ijp0cnVlfQ

编码的JWS签名是空字符串。

按此顺序连接这些编码的部分,部分之间用句点('.')字符分隔,得到以下完整的JWT(为便于显示添加了换行符):

eyJhbGciOiJub25lIn0
.
eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFt
cGxlLmNvbS9pc19yb290Ijp0cnVlfQ
.