据说“要定义cookie身份验证,请改用API密钥”。在官方文件中
https://swagger.io/docs/specification/describing-parameters/#cookie-parameters
事实是我们尝试了
components:
securitySchemes:
cookieAuth:
type: apiKey
in: cookie
name: sessionId
...
security:
- cookieAuth: []
使用上面的代码,在Swagger UI中我们可以点击挂锁来设置sessionId的值。但是当我们执行该方法时, Cookie的值为NULL,我们看不到在标题中发送的Cookie(Chrome开发者工具)
我还尝试将其放在cookie参数中,如下所示:
parameters:
- in: cookie
name: sessionId
required: true
schema:
type: string
但是,同样的结果(到达null,调试器工具中没有任何内容。
我们使用Swagger和openApi 3.0,其他参数,requestBody运行良好,但不是这个cookie传输。
任何可以有想法的东西。
答案 0 :(得分:6)
Swagger UI和Swagger Editor目前不支持在“试用”请求中发送cookie:
https://github.com/swagger-api/swagger-js/issues/1163
正如开发人员解释的那样,问题是几乎不可能将任意cookie数据发送到浏览器内的不同来源。
SwaggerHub支持cookie auth和cookie参数。 SwaggerHub从其服务器而不是从您的浏览器发送“试用”请求,这样就可以使用用户定义的Cookie
标头发送请求。
披露:我为制作SwaggerHub的公司工作。