身份验证 – 使用Swagger 3.0发送cookie会话ID

据说“要定义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,我们看不到在Headers中发送的cookie(Chrome Developer工具)

我也尝试将其放在cookie参数中,如下所示:

parameters:
  - in: cookie
    name: sessionId   
    required: true
    schema:
      type: string

但是,同样的结果(到达null,调试器工具中没有任何内容).

我们使用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的公司工作.

相关文章

HTML代码中要想改变字体颜色,常常需要使用CSS样式表。CSS是...
HTML代码如何让字体盖住图片呢?需要使用CSS的position属性及...
HTML代码字体设置 在HTML中,我们可以使用标签来设置网页中的...
在网页设计中,HTML代码的字体和字号选择是非常重要的一个环...
HTML(Hypertext Markup Language,超文本标记语言)是一种用...
外链是指在一个网页中添加一个指向其他网站的链接,用户可以...