Swagger PHP 安全架构引用不佳

问题描述 投票:0回答:2

我使用此 SecuritySchema 来定义 JWT 安全验证:

/*
     * @SWG\SecurityScheme(
     *   securityDefinition="JWT",
     *   type="apiKey",
     *   in="header",
     *   name="Authenticate"
     * ) */

并将其引用为:

/*
 * @SWG\Post(path="/ap/some/method",
 *   security={"JWT"={}},
 * )

规格说明我应该参考为

{
...
"security":["JWT":[]]
...
}

但事实是 Swagger-PHP 生成:

{
...
"security":{"JWT":[]}
...
}

在 Swagger UI 上显示为验证错误。

问题是: 如何模拟所需的输出以避免 Swagger UI 和 Swagger PHP 警告/错误?

swagger-php
2个回答
5
投票

security":["JWT":[]]
不是有效的 json,但规范确实需要一个用于安全属性的数组。

期望的输出是:

"security":[{"JWT":[]}]

可以通过以下方式生成:

security={{"JWT":{}}}

(注意额外的括号)


0
投票

如果你使用 php 属性,请像这样使用数组:

#[OA\Post(
    path: '/route',
    summary: 'desc',
    security: [['bearerAuth' => []]],
    tags: ['Tag'],
)]

我希望它对某人有帮助,来自 Swagger-PHP 的文档对于属性示例来说非常糟糕。

© www.soinside.com 2019 - 2024. All rights reserved.