I\'d like to increase the lifetime of JWT token but I can\'t.
I tried googling the matter and found references to JwtBearerOptions.TokenValidationParameters.ClockS
expiration value undefined in token descriptor.
var tokenDescriptor = new SecurityTokenDescriptor
{
Issuer = _config.GetValidIssuer(),
Audience = _config.GetValidAudience(),
SigningCredentials = new SigningCredentials(_config.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256),
Subject = new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name, user.UserName),
new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
}),
// expiration time here...
Expiration = _config.GetExpiration() // etc
};
var token = new JwtSecurityToken(_config["Jwt:Issuer"], _config["Jwt:Issuer"],
claims, expires: DateTime.Now.AddMinutes(120)
There' a typo in Bayram's answer, so I think I should post mine.
The property Expiration
doesn't exist in SecurityTokenDescriptor
. It's DateTime? Expires
.
DateTime expires = input.RememberMe ? DateTime.UtcNow.AddDays(5) : DateTime.UtcNow.AddMinutes(20);
var tokenDescriptor = new SecurityTokenDescriptor
{
Expires = expires,
...
Works perfectly!