首页 > 解决方案 > Swagger UI 在标头中发送“BearerToken”,需要“Bearer”

问题描述

我正在使用集成 Apigee 门户中生成的 swagger 2.0 制作一个 swagger-UI。

我正在尝试让 oauth2 客户端凭据(在 swagger 2.0 中称为应用程序)流在 UI 的“试用”部分中工作。

请注意,来自用户的输入是 clientid 和 secret,而不是令牌。

当我尝试授权 get 操作并发送请求时,我可以在 UI 的 curl 表示中看到 Authorization 标头表示为“Authorization: BearerToken {token}”。令牌按预期替换在 curl 字符串中。

Apigee 不支持“BearerToken”前缀,仅支持“Bearer”。有没有办法强制 swaggerUI 使用前缀“Bearer”而不是“BearerToken”?

我的安全定义:

securityDefinitions:
  OAuth2:
    type: oauth2
    flow: application
    tokenUrl: 'https://{org-environment}/token'
    scopes:
      read: Grants read access

我在路径中的安全定义:

 paths:
  /resources:
    get:
      security:
        - OAuth2: [read]

标签: oauth-2.0swagger-uiswagger-2.0apigee

解决方案


令牌的名称是从 oauth 访问令牌生成代理的响应中设置的。

我将 token.type 从“BearerToken”更改为“Bearer”,这解决了我的问题。


推荐阅读