【问题标题】:Unable To Send Bearer Token in Authorization Header In Swagger-ui-express npm无法在 Swagger-ui-express npm 的授权标头中发送承载令牌
【发布时间】:2022-11-24 03:18:54
【问题描述】:

我正在运行一个 express/node 应用程序并使用 "swagger-ui-express": "^4.5.0", 记录我的 api。我已经设置了一个要求,需要将 jsonwebtoken 承载令牌与所有请求一起发送到我的 api 中的任何端点。

我已加载 swagger 文档并正常工作,但现在在尝试弄清楚如何将 Authorization: Bearer <token> 传递到我的所有端点时,它似乎不起作用。我能够添加 securitySchemes + 子选项,并且在我的 swagger 文档中得到绿色的 Authorize 按钮,但是当我输入不记名令牌并发送请求时,加载微调器一直旋转并且从不发送请求。我在我的应用程序中设置了 morgan 日志记录,因此我可以看到对我的端点的请求永远不会被发送或记录。

如何向从 swagger UI 发送的请求发送不记名令牌?

在 app.js 中,我有这条路线可以在 localhost 中正确加载

// Single entry point for swagger docs
router.use(
  '/swaggerDocs',
  swaggerDoc.serve,
  swaggerDoc.setup(swaggerDocumentation),
);

swaggerDocumentation 来自上面的 sn-p(配置文件)。

import getCountryRegions from './getCountryRegions.doc.js';

export default {
  openapi: '3.0.3',
  info: {
    title: 'Node/express rest api app',
    version: '0.0.1',
  },
  components: {
    securitySchemes: {
      bearerAuth: {
        type: 'http',
        in: 'header',
        name: 'Authorization',
        description: 'Bearer Token',
        scheme: 'bearer',
        bearerFormat: 'JWT',
      },
    },
  },
  security: {
    bearerAuth: [],
  },
  servers: [
    {
      url: 'http://localhost:3010/api',
      description: 'Local server',
    },
  ],
  paths: {
    ...getCountryRegions,
  },
};

输入不记名令牌的模态

添加令牌

请求已发送,但它无休止地旋转而从未发送请求

我的应用程序终端或日志记录中没有错误,但在发送请求时我确实在 chrome 浏览器控制台中看到一个错误:

【问题讨论】:

  • 控制台中有任何错误吗?
  • 嗨@Anatoly 我在我的问题中添加了更多信息。实际上,我确实在控制台中看到了一个并非直接源于我的代码的错误。似乎是 Swagger 中的某个问题?
  • Export您来自 Swagger UI 的 OpenAPI YAML/JSON 文件,然后将其内容粘贴到editor.swagger.io。编辑器是否标记任何错误?

标签: node.js swagger swagger-ui openapi


【解决方案1】:

我想通了这个问题...security 属性必须有一个 [] 环绕它的对象。

components: {
    securitySchemes: {
      bearerAuth: {
        type: 'http',
        in: 'header',
        name: 'Authorization',
        description: 'Bearer token to access these api endpoints',
        scheme: 'bearer',
        bearerFormat: 'JWT',
      },
    },
  },
  security: [
    {
      bearerAuth: [],
    },
  ],

这段代码有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2018-07-04
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 2015-08-01
    相关资源
    最近更新 更多