Я создаю .net core web api.
Предисловие - я реализовал аутентификацию токена согласно https://stormpath.com/blog/token-authentication-asp-net-core и https://dev.to/ samueleresca / разработки-маркера аутентификации с использованием ASPnet-жильный . Я также прочитал несколько вопросов о github и здесь о SO.
Это также пригодилось https://goblincoding.com/2016/07/24/asp-net-core-policy-based-authorisation-using-json-web-tokens/ .
После реализации всего этого я чувствую, что что-то упустил.
Я создал простое приложение Angular, которое находится в веб-клиенте. Когда я аутентифицируюсь, клиент отправляет токен. Сейчас я сохраняю это в сеансе (все еще в dev, поэтому расскажу о проблемах безопасности вокруг того, где его хранить позже).
Не совсем уверен, что это ( JWT (JSON Web Token) автоматическое продление срока действия ) полезно, так как я не реализовал токены обновления, насколько я вижу.
Я заметил, что когда я вызываю выход из системы, а затем снова захожу, клиенту отправляется новый токен - как и ожидалось. Однако, если время истечения токена истекло (я установил его на 1 минуту для тестирования), а затем страница обновилась, токен, похоже, остался прежним в моем приложении. т.е.. это как если бы токен никогда не истекает?!
Я ожидал, что клиенту будет возвращена 401 Несанкционированная ошибка, и тогда я смогу обработать принуждение пользователя к повторной аутентификации.
Разве это не так, как это должно работать? Есть ли какая-то магия автообновления, происходящая в фоновом режиме, которая используется по умолчанию (я явно не настроил понятия токенов обновления в руководствах) ? Или я что-то упускаю из концепции аутентификации токена?
Также - , если это постоянно обновляющий токен, следует ли мне беспокоиться о безопасности, если токен когда-либо был скомпрометирован?
Спасибо за вашу помощь