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

ASP.NET Core 6中Swagger无法发送/识别Bearer Token问题

Swagger UI未携带Bearer Token调用接口的解决方案

问题核心:Postman可手动添加Token请求头,但Swagger UI默认不会自动注入Bearer Token认证信息,需在Swagger配置中显式启用JWT认证支持。

配置步骤(Security API和Product API均需执行)

1. 在Swagger生成配置中添加JWT认证定义

修改Program.cs(.NET 6+)或Startup.cs(.NET 5及更早版本)中的Swagger配置代码:

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo { Title = "你的API名称", Version = "v1" });

    // 定义Bearer Token认证方案
    var bearerScheme = new OpenApiSecurityScheme
    {
        Name = "Authorization",
        Type = SecuritySchemeType.Http,
        Scheme = "bearer",
        BearerFormat = "JWT",
        In = ParameterLocation.Header,
        Description = "输入格式:Bearer {你的Token}",
        Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }
    };

    c.AddSecurityDefinition("Bearer", bearerScheme);

    // 为所有接口添加认证要求
    c.AddSecurityRequirement(new OpenApiSecurityRequirement
    {
        { bearerScheme, Array.Empty<string>() }
    });
});

2. 确保中间件顺序正确

在管道配置中,Swagger中间件必须放在认证、授权中间件之后:

app.UseAuthentication();
app.UseAuthorization();

// 启用Swagger及UI
app.UseSwagger();
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "API V1");
});

3. 验证效果

重启API后,打开Swagger UI,点击右上角的Authorize按钮,输入Bearer {你的Token}并保存,之后调用接口时Swagger会自动在请求头中携带Token。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:00:50