swagger 描述OpenAPI中JWT令牌的内容

ltskdhd1  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(71)

我正在构建一个REST API,它使用JWT令牌中的数据来执行一些操作。(例如,验证数据的所有权,因此在某些情况下,我可能会在JWT令牌中发送user_id或类似的东西)。
是否可以使用OpenAPI描述JWT令牌的预期内容?

j7dteeu8

j7dteeu81#

这在OpenAPI 3.1中不受支持,但有一个现有的功能请求:
Allow payload definition for JWT schema

dfddblmv

dfddblmv2#

您可以使用JSON模式,它现在与OpenAPI 3.1兼容:

{
    "type": "string",
    "contentMediaType": "application/jwt",
    "contentSchema": {
        "type": "array",
        "minItems": 2,
        "prefixItems": [
            {
                "const": {
                    "typ": "JWT",
                    "alg": "HS256"
                }
            },
            {
                "type": "object",
                "required": ["iss", "exp"],
                "properties": {
                    "iss": {"type": "string"},
                    "exp": {"type": "integer"}
                }
            }
        ]
    }
}

字符串
这个例子描述了一个使用HMAC SHA-256算法进行MAC的JWT,并且在其声明集中需要“iss”和“exp”字段。
参考:JSON Schema规范第8.6节中的示例3

相关问题