Swagger 2.0配置Bearer Token后调用接口不提示输入Token问题求助
Swagger 2.0 Bearer Token鉴权不生效问题修复方案
问题根因
你当前配置的核心错误是接口安全规则引用的安全方案名称不匹配:
- 你在
securityDefinitions节点自定义的鉴权方案名为Bearer - 但接口下的
security字段引用的是默认示例值petstore_auth,和你定义的方案完全不对应,所以Swagger不会触发Token输入提示
修复步骤
方式1:单接口单独配置鉴权
修改对应接口下的security配置,替换为你自定义的Bearer方案即可:
paths: /DCI_PORT_MGMT/start: post: tags: - "Port Allocation" summary: "Add a new port" description: "" operationId: "addPet" consumes: - "application/json" produces: - "application/json" parameters: - in: "body" name: "body" description: "Start the port allocation workflow." required: true schema: type: object responses: "405": description: "Invalid input" # 这里修改为你自己定义的Bearer安全方案,apiKey类型不需要配置scope security: - Bearer: []
方式2:全局配置鉴权(所有接口自动生效,无需逐个配置)
如果所有接口都需要Bearer Token鉴权,可以在根节点(和paths、securityDefinitions同级)添加全局security配置,不需要再给每个接口单独写:
# 根节点新增全局鉴权配置 security: - Bearer: [] paths: # 接口下不需要再单独写security配置,自动继承全局规则 /DCI_PORT_MGMT/start: post: # 其余接口原有配置保持不变
使用注意
Swagger弹出授权输入框后,输入Token时需要手动添加Bearer 前缀,示例:
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxx.xxx
修改完成后刷新Swagger Editor页面,右上角会出现Authorize按钮,点击即可输入Token,调用接口时会自动携带到Authorization请求头中。
内容的提问来源于stack exchange,提问作者subhra_user
相关产品推荐
相关产品推荐

