Как авторизовать Swagger jsdoc с токеном JWT? - PullRequest
0 голосов
/ 07 июня 2018

Я определил свое определение сваггера, как показано ниже:

const swaggerDefinition = {
  info: {
    title: 'Node Swagger API',
    version: '1.0.0',
    description: 'Describing a RESTful API with Swagger',
  },
  host: 'localhost:8000',
  basePath: '/',
  securityDefinitions: {
    JWT: {
      type: 'apiKey',
      description: 'JWT authorization of an API',
      name: 'Authorization',
      in: 'header',
    },
  },
};

Но я не могу получить какие-либо разрешения в пользовательском интерфейсе сваггера и даже в swagger.json

    info: {
       title: "Node Swagger API",
       version: "1.0.0",
       description: "Describing a RESTful API with Swagger"
    },
    host: "localhost:8000",
    basePath: "/",
    securityDefinitions: { },
    swagger: "2.0",

Определения безопасностиБлок все еще пуст в файле swagger.json, хотя я уже добавил его в определение сваггера в файле server.js

Swagger UI

Может кто-нибудь подсказать, как включитьавторизация или если я неправильно использую шаблон внутри «определений безопасности»?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Получил решение, пока выяснял node_modules.

Просто обновите до последней версии swagger-jsdoc.Это сделает свое дело.

0 голосов
/ 07 июня 2018

Просто чтобы прояснить одну вещь: Определение безопасности определяет безопасность для операций API, а не самой документации.

В документах указано следующее:

Все схемы безопасности, используемые API, должны быть определены в разделе глобальных компонентов / securitySchemes.Этот раздел содержит список именованных схем безопасности, где каждая схема может иметь вид

...

После того, как вы определили схемы безопасности в разделе securitySchemes, выможно применить их ко всему API или отдельным операциям, добавив секцию безопасности на корневом уровне или уровне операций, соответственно.

... IE, вам нужно применить определение либо глобально (если этокак работает API) или для каждой операции под «тегом» безопасности

Пример:

paths:
  /billing_info:
    get:
      summary: Gets the account billing info
      security:
        - OAuth2: [admin]   # Use OAuth with a different scope
      responses:
        '200':
          description: OK
        '401':
          description: Not authenticated
        '403':
          description: Access token does not have the required scope
  /ping:
    get:
      summary: Checks if the server is running
      security: []   # No security
      responses:
        '200':
          description: Server is up and running
        default:
          description: Something is wrong
...