如何使用身份服务器将swagger集成到ASP.NET Core Web API中?

p1iqtdky  于 2024-01-07  发布在  .NET
关注(0)|答案(1)|浏览(142)

我已经将Swagger集成到我的ASP.NET Core Web API项目中,但它只能访问不需要身份验证的端点:

application.UseSwagger();
application.UseSwaggerUI();

字符串
我该如何处理这个问题?是否有方法公开Identity端点并在那里输入用户凭据?

c2e8gylq

c2e8gylq1#

首先你需要向身份服务器请求jwt token。然后对于受jwt“bearer”认证方案保护的API,你可以配置swagger,如下所示,在访问API时添加jwt token。

builder.Services.AddSwaggerGen(option =>
{
    option.SwaggerDoc("v1", new OpenApiInfo { Title = "Demo API", Version = "v1" });
    option.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
    {
        In = ParameterLocation.Header,
        Description = "Please enter a valid token",
        Name = "Authorization",
        Type = SecuritySchemeType.Http,
        BearerFormat = "JWT",
        Scheme = "Bearer"
    });
    option.AddSecurityRequirement(new OpenApiSecurityRequirement
    {
        {
            new OpenApiSecurityScheme
            {
                Reference = new OpenApiReference
                {
                    Type=ReferenceType.SecurityScheme,
                    Id="Bearer"
                }
            },
            new string[]{}
        }
    });
});

字符串
100d1x

的字符串

相关问题