Как сделать недействительным или уничтожить маркер по умолчанию jwt в качестве внешнего носителя в c #? - PullRequest
0 голосов
/ 18 сентября 2018

Я использую веб-API и реализовал поведение по умолчанию для входа в систему, то есть конечные точки, использующие аутентификацию jwt, и теперь я сталкиваюсь с проблемой при аннулировании или уничтожении токена jwt, поскольку я хочу реализовать функцию выхода из системы.Кто-нибудь может предложить логику для этой ситуации, как бороться с истечением срока действия токенов JWT?Примечание. Для входа в систему используется метод GrantResourceOwnerCredentials, как обычно, и он создает токен для проверки подлинности.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Если вы хотите сделать недействительными определенные токены, вам нужно сохранить выданные вами токены в базе данных.

Затем вы проверяете эти токены при проверке входящего токена.

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

0 голосов
/ 18 сентября 2018

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

Если вам необходимо выйти из системы или «аннулировать» токен, вам потребуется выполнить дополнительный шаг.

Что вы можете сделать, это сохранить SessionId (это guid) в БД таблицы User.Когда пользователь входит в систему, отправьте идентификатор сеанса рядом с маркером beader.Сохраните этот идентификатор сеанса в файле cookie или в sessionStorage или в любом другом месте и отправляйте его на сервер с каждым запросом.Затем вы можете применить фильтр глобально к каждому действию, которое проверяет, что SessionId, отправленный клиентом, совпадает с SessionId, хранящимся в базе данных.

Затем, если вам нужно аннулировать токен, сохраните новый идентификатор guid SessionId впользовательская таблица, когда приходит следующий запрос, он не будет совпадать, и вы можете вернуть ответ 401.

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