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

问题描述 投票:0回答:1

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

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

我该如何解决这个问题?有没有办法公开身份端点并在那里输入用户凭据?

c# asp.net-core swagger asp.net-core-webapi
1个回答
0
投票

首先,您应该从身份服务器请求 jwt 令牌。然后,对于受 jwt“承载”身份验证方案保护的 api,您可以像下面这样配置 swagger,以在访问 api 时添加 jwt 令牌。

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[]{}
        }
    });
});

© www.soinside.com 2019 - 2024. All rights reserved.