据说“要定义 cookie 身份验证,请改用 API key ”。在官方文档中
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,我们没有看到在 header 中发送的 cookie(Chrome 开发者工具)
我还尝试将其放入 cookie 参数中,如下所示:
parameters:
- in: cookie
name: sessionId
required: true
schema:
type: string
但同样的结果(到达空值,调试器工具中没有任何内容。
我们使用 Swagger 和 openApi 3.0,其他参数,requestBody 运行良好,但不是这个 cookie 传输。
感谢任何可以有想法的东西。
最佳答案
Swagger UI 和 Swagger Editor 目前不支持在“试用”请求中发送 cookie:
https://github.com/swagger-api/swagger-js/issues/1163
正如开发人员所解释的那样,问题在于几乎不可能从浏览器中将任意 cookie 数据发送到不同的来源。
SwaggerHub虽然支持 cookie auth 和 cookie 参数。 SwaggerHub 从其服务器而不是从您的浏览器发送“试用”请求,这使得使用用户定义的 Cookie
发送请求成为可能。标题。
披露:我为制造 SwaggerHub 的公司工作。
关于authentication - 使用 Swagger 3.0 发送 cookie session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49272171/