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

swagger-ui-express配置persistAuthorization不生效问题咨询

解决方案
  • 第一步:升级swagger-ui-express到最新版本
    绝大多数失效场景是因为安装的swagger-ui-express版本过低,内置的Swagger UI内核版本低于3.37.0,本身不支持persistAuthorization配置项。执行以下命令升级即可:
    npm install swagger-ui-express@latest
    
  • 第二步:验证配置结构
    你当前的配置结构是合规的,升级版本后即可生效,可参考以下标准完整可运行代码调整:
    const express = require("express");
    const app = express();
    app.listen(3000, () => console.log("服务启动在3000端口"));
    
    const swaggerUi = require('swagger-ui-express');
    
    const options = {
      swaggerOptions: {
        persistAuthorization: true
      }
    };
    
    const swaggerDocument = {
      "swagger": "2.0",
      "info": {
        "title": "Simple API overview",
        "version": "v2"
      },
      securityDefinitions: {
        BearerAuth: {
          type: 'apiKey',
          in: 'header',
          name: 'Authorization'
        }
      },
      // 可选配置:全局开启BearerAuth授权,所有接口默认携带授权头
      security: [
        {
          BearerAuth: []
        }
      ]
    };
    
    app.use('/doc', swaggerUi.serve, swaggerUi.setup(swaggerDocument, options));
    
  • 特殊场景兜底方案
    如果升级后仍然无法生效,可以通过注入自定义JS手动强制开启持久化配置,修改options参数如下:
    const options = {
      swaggerOptions: {
        persistAuthorization: true
      },
      customJsStr: `
      window.onload = function() {
        ui = SwaggerUIBundle({
          ...window.ui.getConfigs(),
          persistAuthorization: true
        })
      }
      `
    };
    

配置完成后重启服务,清除浏览器缓存后重新访问/doc路径,填写授权信息后刷新页面,授权信息就会自动保存在浏览器localStorage中不会丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:54:03