Как правильно проверить, не истек ли токен доступа из внешнего интерфейса, даже если время на клиентском ПК неверно? - PullRequest
0 голосов
/ 03 января 2019

Мое время на ПК на 2 минуты меньше, чем на самом деле.Это потому, что он находится в сети, где основной компьютер имеет неправильное время.Во всех случаях это хороший пример того, что веб-интерфейс считает, что токен не истек, тогда как на самом деле он истек, а серверная часть выдает ошибку.

В настоящее время, чтобы узнать, истек ли токен во внешнем интерфейсе, я использую следующее:

if(  this.jwtHelper.isTokenExpired(token) ) {
  console.log ("Token expired!")
}

Так как время моего ПК отстает на 2 минуты, когда истекает токен, у меня все еще есть2 минуты, когда веб-интерфейс считает, что этот токен все еще действует.Есть ли способ действительно узнать, если срок действия токена истек даже при неправильной настройке времени на клиентском компьютере?Это реальный случай использования, о котором мне нужно беспокоиться, или мне просто нужно исправить время на компьютере и не беспокоиться об этой проблеме?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Клиент будет знать, когда код состояния ответа сервера будет 401.Это единственный законный источник правды.

0 голосов
/ 04 января 2019

Я не могу комментировать JWT, потому что это немного больше, чем нужно для моего приложения, но я использую токен аутентификацию. В моем случае токены кэшируются на сервере при действительной аутентификации по имени пользователя и паролю и удаляются из кэша по истечении срока их действия. Клиент, представляющий токен с истекшим сроком действия, выдает ошибку HTTP 401 (неавторизованный), и мой угловой перехватчик распознает его как токен с истекшим сроком действия и перенаправляет в представление входа в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...