首页 > 解决方案 > JwtSecurityTokenHandler.ValidateToken 抛出 Lifetime 验证失败异常

问题描述

我正在创建一个 ASP.net core 5 Web API。在尝试获取刷新令牌时,会对当前令牌进行各种验证检查。我的初始检查是使用 JwtSecurityTokenHandler.ValidateToken 和下面的代码。

var tokenInVerification = jwtTokenHandler.ValidateToken(tokenRequest.Token, _tokenValidationParams, out var validatedToken);

然而它抛出:

IDX10223: Lifetime validation failed. The token is expired. ValidTo: 'System.DateTime', Current time: 'System.DateTime'

有没有办法解决这个问题,因为我不希望它抛出异常但继续,这样我就可以运行其他验证检查。

我正在迭代

标签: c#jwtasp.net-core-webapi

解决方案


刚入ValidateLifetime=false__tokenValidationParams

var _tokenValidationParams= new TokenValidationParameters
{
    ValidateAudience = true,
    ValidAudience = GetValidAudience(),
    ValidIssuer = GetValidIssuer(),
    IssuerSigningKey = GetIssuerSigningKey(),
    ValidateIssuerSigningKey = true,
    ValidateIssuer = true,

    ValidateLifetime = false //Here we are saying that we don't care about the token's expiration date
};

推荐阅读