Jwt Token не истекает, когда это должно - PullRequest
0 голосов
/ 12 марта 2019

Я использую System.IdentityModel.Tokens.Jwt для генерации токенов, я создаю токены, используя следующие ...

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(x =>
    {
        x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
        x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    })
    .AddJwtBearer(x =>
    {
        x.RequireHttpsMetadata = false;
        x.SaveToken = true;
        x.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuerSigningKey = true,
            IssuerSigningKey = new SymmetricSecurityKey(key),
            ValidateIssuer = false,
            ValidateAudience = false,
            ValidateLifetime = true,
            ClockSkew = TimeSpan.Zero
        };
    });
}

Контроллер входа в систему:

var tokenHandler = new JwtSecurityTokenHandler();
var key = Encoding.ASCII.GetBytes(_appSettings.SECRET);
var currentTime = DateTime.Now;
var expires = DateTime.Now.AddSeconds(30);

var tokenDescriptor = new SecurityTokenDescriptor
{
    Expires = expires,
    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
};
var token = tokenHandler.CreateToken(tokenDescriptor);
var tokenString = tokenHandler.WriteToken(token);

Я установил время истечения на 30 секунд, но токен не истекает даже через 5-10 минут, я попытался установить время истечения на 5 минуттогда мой токен также не истек, я проверил это, и пока он еще не истек (после более чем 1 часа) и успешно проверил мой токен, что не должно происходить.Может кто-нибудь объяснить, почему это происходит и что я делаю не так?Кроме того, если вы увидите что-то еще с кодом, который я предоставил, любые рекомендации будут полезны, так как я новичок в использовании JWT.Заранее спасибо

...