В настоящее время я программирую ASP.NET-Core WebApi, используя JWT-Bearer-Authentication.
Чтобы сделать API доступным из разных часовых поясов, я использую следующий шаблон для установки полей nbf
(notBefore) и exp
(срок действия) в моем JWT на UTC-метку времени:
var utcNow = DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Unspecified);
...
var tokenOptions = new JwtSecurityToken(
notBefore: utcNow,
expires: utcNow.AddSeconds(3600),
);
...
Для генерации токенов все работает довольно хорошо, nbf
и exp
содержат метку времени UNIX, представляющую текущее время UTC.
Но когда выполняется проверка токена, все работает в течение 5 минут (моя настройка перекоса часов), а затем я получаю только 401 от API, потому что проверка токена выполняется с моим текущим часовым поясом здесь, в Германии.
Есть ли способ настроить промежуточное ПО JwtAuthentication в .NET-Core для использования UTC-Time для проверки токена? Или есть другие способы решить эту проблему?