Как отменить аутентификацию JWT через cookie? - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь проверить аутентификацию JWT с помощью Micronaut.

Я прочитал из этого руководства , это руководство работает, но я все еще не понимаю его.

например, когда пользователь A, использующий имя пользователя sherlock для входа в систему и вход в систему, успешен, клиент пользователя A получит токен JWT и сохранит в Cookie а с другой стороны, пользователь B использует то же имя пользователя и логин для сервера, потому что он / она получит новый токен JWT и сохранит его в Cookie.

это означает, что пользователь A & B может получить доступ к http:localhost:8080/, но когда пользователь A или B делает Logout, оба пользователя A & B не могут снова получить доступ к http://localhost:8080/.

это означает, что когда один из них выходит из системы, оба токена JWT больше не действительны.

из этого руководства, как микронавт отзывает этот токен JWT?

1 Ответ

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

Рекомендую прочитать эту статью:

https://medium.com/devgorilla/how-to-log-out-when-using-jwt-a8c7823e8a6

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

Допустим, у нашего JWT истек срок 5 минут, и пользователь A и B вошли в систему. Затем пользователь A "выходит из системы", и приложение удаляет cookie, но существующий JWT в браузере пользователя B все еще жив, и у вас нет возможность принудительного удаления. Но JWT клиента B истечет через 5 минут, и ему придется снова войти в систему (потому что он получит 401 за каждый следующий HTTP-вызов)

Надеюсь, это вам как-то объяснительно:)

see this image

...