How do I automatically authorize all endpoints with Swagger UI?

If you use Swagger UI v.3.13.0 or later, you can use the following methods to authorize the endpoints automatically:

  • preauthorizeBasic – for Basic auth
  • preauthorizeApiKey – for API keys and OpenAPI 3.x Bearer auth

To use these methods, the corresponding security schemes must be defined in your API definition. For example:

openapi: 3.0.0
...
components:
  securitySchemes:

    basicAuth:
      type: http
      scheme: basic

    api_key:
      type: apiKey
      in: header
      name: X-Api-Key

    bearerAuth:
      type: http
      scheme: bearer

security:
  - basicAuth: []
  - api_key: []
  - bearerAuth: []

Call preauthorizeNNN from the onComplete handler, like so:

// index.html

const ui = SwaggerUIBundle({
  url: "https://my.api.com/swagger.yaml",
  ...

  onComplete: function() {

    // Default basic auth
    ui.preauthorizeBasic("basicAuth", "username", "password");

    // Default API key
    ui.preauthorizeApiKey("api_key", "abcde12345");

    // Default Bearer token
    ui.preauthorizeApiKey("bearerAuth", "your_bearer_token");
  }
})

In this example, “basicAuth”, “api_key”, and “bearerAuth” are the keys name of the security schemes as specified in the API definition.

Leave a Comment