swagger - 招摇路径中的安全字段
问题描述
我已经在 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 ]
这里有什么问题?
解决方案
在 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)
推荐阅读
- android - 多模块项目:如何设置 Dagger 以提供接口但隐藏特定于实现的依赖项?
- asp.net - 如何覆盖 fluentvalidator 扩展方法?
- python - 从 Raspberry PI 3 到 Arduino UNO 的串行通信丢失字节
- php - 如何在结果回显之前添加表单验证回显
- dart - 如何在飞镖中反转地图?有没有内置功能
- javascript - 如何基于带有数组的对象创建新对象
- android - 找不到参数 [com.android.support.constraint:constraint-layout:1.1.3] 的方法 compile()
- postgresql - SQL 查询出错:查询解析失败。HResult 异常:0x80040E14
- android - onDraw 被调用,但没有被绘制
- php - 即使设置了 WHERE 条件,MySQL 是否仍会查询每条记录?