首页 > 解决方案 > 招摇路径中的安全字段

问题描述

我已经在 swagger 中向端点添加了一个安全字段,但是 swagger-ui (editor.swagger.io) 将此端点与没有安全描述的端点完全相同:

这就是我添加安全描述的方式:

openapi: 3.0.0
  securitySchemes:
    JWT:
      name: Authorization
      in: header
      type: apiKey
      description: JWT token

security:
  - JWT: []

    get:
      security:
        - JWT: [ manager ]

这里有什么问题?

标签: swaggerswagger-uiopenapi

解决方案


在 OpenAPI 3 中,您可以在部分中将您securitySchemes的组件定义为组件components,然后将其设置security为 API 顶级或端点级别。

请参阅以下示例

openapi: 3.0.3
info:
  title: Your API
  description: Your API description
  version: 0.0.1

# This sets all paths with authentication
security:
  - BearerAuth: []

paths:
  /users:
    post:
      summary: Create a new user
      operationId: createUser
      security: [] # <-- disable auth for a specific path
      tags:
        - Users
      requestBody:
        ...
      responses:
        ...

  # The security is inherited from API level
  /users/me:
    get:
      summary: Get user information
      operationId: getUser
      tags:
        - Users
      requestBody:
        ...
      responses:
        ...

components:
  # Security
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

可以在此处找到身份验证的完整参考,并在此处找到承载身份验证 (JWT)


推荐阅读