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

如何修改ASP.NET Core 8中Swagger生成的Bearer Token的expiresIn值

修改ASP.NET Core 8中AddIdentityApiEndpoints生成的Bearer Token过期时间

无需重构现有代码,只需通过配置BearerTokenOptions即可修改Token的过期时间。AddIdentityApiEndpoints底层使用该选项控制Bearer Token的有效期,默认值为3600秒(1小时)。

具体修改步骤

在AddIdentityApiEndpoints的配置代码后,添加Token过期时间的配置:

builder.Services.AddIdentityApiEndpoints<IdentityUser>()
    .AddEntityFrameworkStores<DataContext>();

// 配置Bearer Token过期时间,替换为你需要的时长
builder.Services.Configure<BearerTokenOptions>(options =>
{
    // 示例:设置Token有效期为2小时(对应expiresIn为7200秒)
    options.TokenExpiration = TimeSpan.FromHours(2);
});

修改后的完整Program.cs关键片段

public static void Main(string[] args)
{
    var builder = WebApplication.CreateBuilder(args);
    builder.Logging.ClearProviders();
    builder.Logging.AddLog4Net();

    // Add services to the container.
    builder.Services.AddControllers();
    builder.Services.AddEndpointsApiExplorer();
    builder.Services.AddSwaggerGen(options =>
    {
        options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
        {
            In = ParameterLocation.Header,
            Name = "Authorization",
            Type = SecuritySchemeType.ApiKey
        });

        options.OperationFilter<SecurityRequirementsOperationFilter>();
    });

    builder.Services.AddDbContext<DataContext>(options =>
        options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

    builder.Services.AddAuthorization();

    builder.Services.AddIdentityApiEndpoints<IdentityUser>()
        .AddEntityFrameworkStores<DataContext>();

    // 新增Token过期时间配置
    builder.Services.Configure<BearerTokenOptions>(options =>
    {
        options.TokenExpiration = TimeSpan.FromHours(2);
    });

    var app = builder.Build();

    // Configure the HTTP request pipeline.
    if (app.Environment.IsDevelopment() || app.Environment.IsProduction())
    {
        app.UseSwagger();
        app.UseSwaggerUI();
    }

    app.MapIdentityApi<IdentityUser>();

    // We enforce HTTPS on WAF.  Enforcing it here as well causes a redirect loop.
    //app.UseHttpsRedirection();

    app.UseAuthorization();

    app.MapControllers();

    app.Run();
}

配置生效后,调用认证端点获取的Bearer Token的expiresIn值会自动更新为设置的时长(示例中为7200秒)。

内容的提问来源于stack exchange,提问作者mrcoulson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:03:11