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

NodeJS+Swagger Autogen OpenAPI3.0:Swagger UI请求缺失Bearer前缀求助

解决Swagger UI提交请求时自动添加Bearer前缀的方法

方法一:修改Swagger Autogen的Security Scheme配置(推荐)

问题根源通常是当前配置的认证类型为apiKey,而非OpenAPI 3.0规范中的http bearer类型,导致Swagger UI不会自动注入Bearer 前缀。直接在Swagger Autogen的文档定义中修改securitySchemes:

const swaggerAutogen = require('swagger-autogen')();

const doc = {
  info: {
    title: '你的API文档',
    version: '1.0.0',
  },
  // 核心修改:配置http类型的bearer认证
  components: {
    securitySchemes: {
      bearerAuth: {
        type: 'http',
        scheme: 'bearer',
        bearerFormat: 'JWT', // 可选,用于说明Token格式,不影响前缀注入
      },
    },
  },
  // 全局启用该认证,所有接口默认携带Authorization头
  security: [{ bearerAuth: [] }],
};

const outputFile = './swagger-output.json';
const endpointsFiles = ['./app.js']; // 你的路由文件路径

swaggerAutogen(outputFile, endpointsFiles, doc);

配置完成后重新生成Swagger文档,Swagger UI的认证区域会自动识别为Bearer Token类型,输入Token后提交请求时会自动添加Bearer 前缀。

方法二:通过Swagger UI拦截器手动添加前缀

如果无法修改Security Scheme配置,可通过Swagger UI的自定义请求拦截器实现前缀补全。以swagger-ui-express为例:

const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger-output.json');

const app = express();

// 自定义请求拦截逻辑
const swaggerUiOptions = {
  customRequestInterceptor: (req) => {
    // 检查Authorization头是否存在且未携带Bearer前缀
    if (req.headers.authorization && !req.headers.authorization.startsWith('Bearer ')) {
      req.headers.authorization = `Bearer ${req.headers.authorization}`;
    }
    return req;
  },
};

// 挂载Swagger UI并传入自定义配置
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument, swaggerUiOptions));

app.listen(3000, () => console.log('服务启动'));

方法三:局部接口指定认证规则

如果仅需部分接口启用Bearer认证,可在对应路由的Swagger注释中单独声明:

/**
 * @swagger
 * /api/protected:
 *   get:
 *     security:
 *       - bearerAuth: []
 *     summary: 需要认证的接口
 *     responses:
 *       200:
 *         description: 请求成功
 */
app.get('/api/protected', (req, res) => {
  res.send('Protected content');
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:55:16