You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

原生Swagger UI是否支持带PKCE的授权码流?OpenAPI 3.0可文档化吗?

关于原生Swagger UI支持PKCE授权码流及OpenAPI 3.0文档化的解答

1. 原生Swagger UI对带PKCE的授权码流的支持

原生Swagger UI 从3.38.0版本开始正式支持带PKCE的授权码流,如果你的工具集成的Swagger UI版本低于这个版本,就只能配置普通授权码流。

要启用PKCE,需要在Swagger UI的初始化配置中添加pkce: true参数,同时确保OpenAPI定义里的OAuth2安全方案正确配置了授权码流的端点:

// Swagger UI初始化示例
const ui = SwaggerUIBundle({
  url: "/openapi.json",
  dom_id: '#swagger-ui',
  oauth2RedirectUrl: "你的重定向URL",
  pkce: true // 启用PKCE
  // 其他配置项...
});

2. OpenAPI 3.0对带PKCE授权码流的文档化支持

OpenAPI 3.0核心规范本身没有专门定义PKCE的配置字段,但可以通过自定义扩展字段(比如x-pkce)来标记该授权码流需要使用PKCE,以此完成文档化。示例如下:

openapi: 3.0.3
components:
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://你的授权服务器/authorize
          tokenUrl: https://你的授权服务器/token
          scopes:
            read: 读取资源
            write: 写入资源
          x-pkce: true # 自定义扩展字段,标记启用PKCE
security:
  - oauth2: [read, write]

当Swagger UI版本支持PKCE时,会识别这个x-pkce扩展并自动启用PKCE流程。而OpenAPI 3.1版本开始,已经在规范中正式加入了PKCE的配置项(authorizationCode流里的pkce字段),如果可以升级到OpenAPI 3.1,配置会更标准。

内容的提问来源于stack exchange,提问作者DurandA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:26:01