2016-06-22 11 views
10

Я использую плагин jwt и стратегию в hapijs. Я могу создать токен jwt во время входа в систему и аутентифицировать другой API, используя тот же токен с помощью стратегии «jwt». Я устанавливаю токен в 'request.state.USER_SESSION' как файл cookie, где USER_SESSION - это токен. Также я не сохраняю этот токен в базе данных. Но как я могу уничтожить токен jwt во время выхода из системы. Пожалуйста, предложите способ.Как уничтожить токены JWT при выходе из системы?

ответ

14

JWT хранится в браузере, так что удалить маркер удаляемого кук на стороне клиента

Если вам необходимо также аннулировать маркер из стороны сервера до его истечения времени, например, аккаунт удалена/заблокировано/приостановлены, пароль изменен, права изменены, пользователь вышел из системы администратором, взгляните на Invalidating JSON Web Tokens на некоторые общие методы, такие как создание черного списка или вращающихся токенов

+0

Я согласен с вашим ответом. Я устанавливаю токен jwt в cookie с помощью 'reply.state (' USER_SESSION ', {jwtToken}); где USER_SESSION - имя файла cookie. Итак, можете ли вы предложить мне, какую команду я должен выполнить, чтобы очистить файл cookie от состояния в hapijs? – Garima

+0

Вы находитесь на стороне сервера, и вы не можете заставить браузеры удалять файлы cookie. Но вы можете установить значение пустым и включить поле 'expires', чтобы аннулировать значение cookie. См. Http://stackoverflow.com/questions/5285940/correct-way-to-delete-cookies-server-side. Вы также можете аннулировать cookie на стороне клиента с помощью javascript 'var delete_cookie = function (name) { document.cookie = name + '=; expires = Thu, 01 Jan 1970 00:00:01 GMT;'; }; ' – pedrofb

+0

Спасибо большое! Я доволен вашим ответом. – Garima