.net core Swagger添加bearer token参数

本文介绍了如何在ASP.NET应用中通过Swagger集成Bearer JWT令牌验证,并详细说明了如何设置OpenAPI安全定义和要求,以便在Swagger UI中实现API方法的授权功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入swagger后,在services.AddSwaggerGen中增加如下内容
//Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen(c =>
{

            //Bearer 的scheme定义
            var securityScheme = new OpenApiSecurityScheme()
            {
                Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                Name = "Authorization",
                //参数添加在头部
                In = ParameterLocation.Header,
                //使用Authorize头部
                Type = SecuritySchemeType.Http,
                //内容为以 bearer开头
                Scheme = "bearer",
                BearerFormat = "JWT"
            };

            //把所有方法配置为增加bearer头部信息
            var securityRequirement = new OpenApiSecurityRequirement
                {
                    {
                            new OpenApiSecurityScheme
                            {
                                Reference = new OpenApiReference
                                {
                                    Type = ReferenceType.SecurityScheme,
                                    Id = "bearerAuth"
                                }
                            },
                            new string[] {}
                    }
                };

            //注册到swagger中
            c.AddSecurityDefinition("bearerAuth", securityScheme);
            c.AddSecurityRequirement(securityRequirement);
        });
        添加成功后,swagger右上方会有一个Authroize按钮,点击后可以输入bearer token。

在这里插入图片描述
每个API方法后,会有一个锁的标志,表明该方法会传递bearer token。在这里插入图片描述
转载于 https://www.cnblogs.com/mosakashaka/p/13151629.html

### .NET Core 使用 Swagger 实现身份认证 在构建 API 接口时,安全性和访问控制至关重要。Swagger 不仅可以用于生成美观易读的 API 文档,还支持通过多种方式实现身份验证和授权功能。 对于需要保护的 API 路径,在 `Startup` 类中的 `ConfigureServices` 方法里注册中间件并指定所需的身份验证方案: ```csharp public void ConfigureServices(IServiceCollection services) { services.AddControllers(); // 配置JWT Bearer Token认证机制 services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(o => { o.Authority = "https://localhost:5001"; o.Audience = "apiName"; o.RequireHttpsMetadata = false; }); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); var securitySchema = new OpenApiSecurityScheme { Description = "输入有效的 JWT 访问令牌", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "bearer", Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }; c.AddSecurityDefinition("Bearer", securitySchema); c.AddSecurityRequirement(new OpenApiSecurityRequirement { {securitySchema, new[] {"readAccess", "writeAccess"}} }); }); } ``` 接着是在 `Configure` 函数内应用这些设置来确保请求被适当处理[^1]。 为了使开发者能够方便地测试受保护端点的功能,可以在启动应用程序之前向 Swagger UI 提供必要的 OAuth2 流程参数配置。这允许用户直接从界面获取临时性的访问令牌来进行调试工作[^4]。 最后一步是确保所有敏感数据都经过加密传输,并且只授予特定角色或权限范围内的客户端访问受限资源的能力。可以通过自定义属性 `[Authorize(Roles="Admin")]` 或者更细粒度的方式如 Policy-Based Authorization 来完成这一目标[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值