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

JwtBearerDefaults及其AuthenticationScheme字段的作用是什么

JwtBearerDefaults 类及对应 AuthenticationScheme 字段作用

JwtBearerDefaults 类定位

这是ASP.NET Core JWT Bearer认证内置的静态常量类,里面统一存放JWT Bearer认证流程用到的固定默认值,核心作用就是替代开发者硬编码字符串,减少拼写错误,统一配置口径。

JwtBearerDefaults.AuthenticationScheme 字段作用

这个字段是类里最常用的常量,值固定为"Bearer",具体作用分两个场景:

  • 作为AddAuthentication()的入参时,是给认证系统指定全局默认认证方案:告诉ASP.NET Core后续请求没有特殊指定鉴权方案的话,默认就用JWT Bearer对应的处理器,去解析请求头里的Authorization字段、完成令牌校验、生成用户身份Claims凭据,对应你给出的代码里的用法。
  • 多认证方案共存时(比如系统同时接入Cookie认证、JWT认证、自定义ApiKey认证),可以在[Authorize]特性里通过这个常量显式指定接口使用的鉴权方案,比如[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)],不用手动写"Bearer"字符串,避免拼写错误导致鉴权失效。

补充说明:就算你不用这个常量,直接手写字符串"Bearer"传进去,功能上也能正常跑,但用官方常量是公认的最佳实践:一方面避免手滑拼错字符串(比如把Bearer拼成Bearar这类低级错误排查起来非常浪费时间),另一方面如果后续组件版本调整默认方案名,业务代码不需要做任何修改就能适配。

参考配置代码逻辑拆解

// 注册认证服务,指定全局默认认证方案为JWT Bearer
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
// 注册JWT Bearer方案的认证处理器,配置令牌校验规则
.AddJwtBearer(options =>
{
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true, // 开启令牌签发方校验
        ValidateAudience = true, // 开启令牌接收方校验
        ValidateLifetime = true, // 开启令牌有效期校验
        ValidIssuer = tokenOptions.Issuer, // 配置信任的合法签发方
        ValidAudience = tokenOptions.Audience, // 配置信任的合法接收方
        ValidateIssuerSigningKey = true, // 开启令牌签名校验
        IssuerSigningKey = SecurityKeyHelper.CreateSecurityKey(tokenOptions.SecurityKey) // 配置用于验签的对称/非对称密钥
    };
});

内容的提问来源于stack exchange,提问作者Burcu Taş

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:57:26