Я запускаю приложение express/node и документирую свой API с помощью "swagger-ui-express": "^4.5.0",. Я установил требование о необходимости отправки токена носителя jsonwebtoken со всеми запросами на любую конечную точку в моем API.
У меня документы swagger загружены и работают правильно, но теперь, когда я пытаюсь понять, как передать Authorization: Bearer <token> всем моим конечным точкам, похоже, это не работает. Я могу добавить securitySchemes + дочерние параметры, и я получаю зеленую кнопку Authorize в своих документах swagger, но когда я ввожу токен носителя и отправляю запрос, счетчик загрузки продолжает вращаться и никогда не отправляет запрос. В моем приложении настроено morgan ведение журнала, поэтому я вижу, что запрос к моей конечной точке никогда не отправляется и не регистрируется.
Как отправить токен носителя на запросы, отправленные из пользовательского интерфейса swagger?
В app.js у меня есть этот маршрут, который правильно загружается в localhost
// Single entry point for swagger docs
router.use(
'/swaggerDocs',
swaggerDoc.serve,
swaggerDoc.setup(swaggerDocumentation),
);
swaggerDocumentation фрагмент выше (файл конфигурации).
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?





Я понял проблему... свойство security должно иметь [] обернутый вокруг объекта.
components: {
securitySchemes: {
bearerAuth: {
type: 'http',
in: 'header',
name: 'Authorization',
description: 'Bearer token to access these api endpoints',
scheme: 'bearer',
bearerFormat: 'JWT',
},
},
},
security: [
{
bearerAuth: [],
},
],
Этот кусок кода работает.
Ошибки в консоли?