По какой-то причине мое приложение RESTful разрешает запросы от клиента Angular с токеном с истекшим сроком действия в течение некоторого времени.Генерируя токен:
private async Task<string> GenerateJwtToken(ApplicationUser user)
{
var claims = new List<Claim>
{
new Claim(JwtRegisteredClaimNames.Sub, user.Email),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
new Claim(ClaimTypes.NameIdentifier, user.Id)
};
claims.AddRange(await _userManager.GetClaimsAsync(user));
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetSection("SigningKey").Value));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var expires =
DateTime.Now.AddSeconds(10);
//DateTime.Now.AddDays(Convert.ToDouble(_configuration["ExpireDays"]));
var token = new JwtSecurityToken(
issuer: _configuration["Issuer"],
audience: _configuration["Audience"],
claims: claims,
expires: expires,
signingCredentials: creds);
return new JwtSecurityTokenHandler().WriteToken(token);
}
на клиенте до запроса, я записываю время истечения, сейчас и если сейчас больше времени истечения.журнал двух успешных запросов, однако последний должен быть отклонен
t: вторник, 18 сентября 2018 года 08:53:43 GMT + 0300 (московское стандартное время) credentials-service.ts: 101
сейчас: вт. 18 сен. 2018 08:53:41 GMT + 0300 (московское стандартное время) credentials-service.ts: 102
false
истина означает истек срок действия
credentials-service.ts: 100 т: вт 18 сентября 2018 08:53:43 GMT + 0300 (московское стандартное время)
credentials-service.ts: 101 сейчас:Вт 18 сен 2018 08:58:01 GMT + 0300 (московское стандартное время)
credentials-service.ts: 102
true
Мне только отказаличерез 5-6 минут почему-то вместо 10 секунд.