【发布时间】: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,
},
};
【问题讨论】:
-
控制台中有任何错误吗?
-
嗨@Anatoly 我在我的问题中添加了更多信息。实际上,我确实在控制台中看到了一个并非直接源于我的代码的错误。似乎是 Swagger 中的某个问题?
-
Export您来自 Swagger UI 的 OpenAPI YAML/JSON 文件,然后将其内容粘贴到editor.swagger.io。编辑器是否标记任何错误?
标签: node.js swagger swagger-ui openapi