.net core OAuth 2.0、Swagger和DotNet核心

.net core OAuth 2.0、Swagger和DotNet核心,.net-core,oauth-2.0,auth0,.net Core,Oauth 2.0,Auth0,我使用Auth0来允许我使用OAuth2.0,并编写了一个DotnetCoreAPI应用程序,所有这些都可以正常工作,Auth0提供了一个很好的使用示例 然而,我很难让Swagger授权,有人管理过吗?如果有,怎么管理?是的,我也有类似的情况,我的项目是在net core 3中完成的,也使用Auth0和实现Swagger。我在Startup.cs中的代码如下所示 //Swagger services.AddSwaggerGen(c => {

我使用Auth0来允许我使用OAuth2.0,并编写了一个DotnetCoreAPI应用程序,所有这些都可以正常工作,Auth0提供了一个很好的使用示例


然而,我很难让Swagger授权,有人管理过吗?如果有,怎么管理?

是的,我也有类似的情况,我的项目是在net core 3中完成的,也使用Auth0和实现Swagger。我在Startup.cs中的代码如下所示

        //Swagger
        services.AddSwaggerGen(c =>
        {
            // Another options like docs info or xml

            c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description = @"JWT Authorization header using the Bearer scheme.
                                Enter 'Bearer' [space] and then your token in the text input below.
                                Example: Bearer adsdflEDc.asdkjhd.aEASDAD",
                Name = "Authorization",
                In = ParameterLocation.Header,
                Type = SecuritySchemeType.ApiKey,
                Scheme = "Bearer"
            });

            c.AddSecurityRequirement(new OpenApiSecurityRequirement()
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id = "Bearer"
                        },
                        Scheme = "oauth2",
                        Name = "Bearer",
                        In = ParameterLocation.Header
                    },
                    new List<string>()
                }
            });
        });
//大摇大摆
services.AddSwaggerGen(c=>
{
//其他选项,如文档信息或xml
c、 AddSecurityDefinition(“载体”),新的OpenApiSecurityScheme
{
Description=@“使用承载方案的JWT授权头。
输入'Bearer'[space],然后在下面的文本输入中输入您的令牌。
示例:承载adsdflEDc.asdkjhd.aEASDAD“,
Name=“授权”,
In=参数位置.Header,
类型=SecuritySchemeType.ApiKey,
Scheme=“持票人”
});
c、 AddSecurityRequest(新的OpenAPISecurityRequest()
{
{
新的OpenApiSecurityScheme
{
Reference=新的OpenApiReference
{
Type=ReferenceType.SecurityScheme,
Id=“持票人”
},
Scheme=“oauth2”,
Name=“持票人”,
In=参数位置.Header
},
新名单()
}
});
});
您只需添加AddSecurityDefinitionAddSecurityRequest选项,当您运行API时,您可以在Swagger UI中看到右上角的一个按钮,当您单击时,您将看到它请求授权令牌,该令牌将应用于所有受保护的端点