authentication - 使用 Swagger 3.0 发送 cookie session ID

标签 authentication cookies swagger openapi

据说“要定义 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/

相关文章:

javascript - 如何从angularjs中的响应 header 读取 token

PHP phpMyAdmin 尝试打开时出错

javascript - 安装了 angular-cookies,在信息功能上出现 angular.module 错误

asp.net-core - .NET Core Web API、JWT 和 Swagger - 401 显示为 Undocumented 而不是 Unauthorized

javascript - 客户端 JavaScript 应用程序和服务器端 HTTP API 之间的身份验证?

postgresql - 使用 www-data 和 --host 参数访问 Postgres

php - 使用私有(private) API REST (Android + Symfony)

javascript - Safari 8 第 3 方 cookie 未发送

import - 服务堆栈 Swagger 2.0 和 Azure Api 管理导入

javascript - Swagger-Codegen:如何将所有文件合并到一个文件中以进行客户端代码生成