В Startup.cs
я включаю аутентификацию JWT, которая отлично работает во всех моих приложениях.
b.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, o =>
{
o.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = key,
ValidateIssuer = true,
ValidIssuer = JwtConstants.Issuer,
ValidateAudience = true,
ValidAudience = JwtConstants.Audience,
ValidateLifetime = true,
ClockSkew = TimeSpan.Zero
};
});
В одном из моих контроллеров я хотел бы получить дескриптор TokenValidationParameters
, который установлен в конфигурации Startup.cs
. Я думал, что смогу сделать это, предоставив моему конструктору контроллера значение IOptions<JwtBearerOptions> options
и прочитав options.Value.TokenValidationParameters
, однако при вводе свойства не соответствуют значениям, установленным в Startup.cs
.
Моя конечная цель - вручную проверить токен JWT, как показано ниже.
var handler = new JwtSecurityTokenHandler();
var user = handler.ValidateToken(token, validationParameters, out var validatedToken);