Я создаю веб-приложение на React. Он сохраняет токен в localstorage после входа пользователя в систему через стороннюю службу Oauth2.
Когда пользователь выходит из системы, localstorage.clear () очищает токен.
Storage {length: 0}
Однако, если я пару раз нажму кнопку «Назад» в браузере, я вернусь в приложение, и токен снова появится в локальном хранилище, как будто я никогда раньше не выходил из системы.
Я пытался:
localstorage.clear(), localStorage.removeItem('accessToken'), location.reload(true) ...
Как я могу очистить хранилище и историю?
Похоже, браузер показывает кешированную страницу, а не восстанавливает локальное хранилище.
Вероятно, вам следует использовать sessionStorage вместо localStorage, хотя я не думаю, что это решит эту проблему.
Я не уверен, как эта служба хранит токен в локальном хранилище, но это кажется странным. Поскольку это локальное хранилище, оно должно быть установлено кодом javascript, который был загружен частью страницы. Когда вы вернетесь назад, браузер может легко загрузить страницу из кеша и выполнить javascript, который снова устанавливает локальное хранилище. Опять же, хранить токены входа в локальное хранилище довольно странно.
Я пробовал sessionStorage и файлы cookie ... без помощи.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Невозможно вернуть значение localstorage после того, как вы запустите clear/removeItem. Я предполагаю, что вы используете redux и храните свой токен где-то в магазине. Когда вы щелкаете назад, в какой-то момент вы, вероятно, снова сохраняете его в локальном хранилище.
Вы пытались проверить содержимое локального хранилища в консоли? Если вы очистите локальное хранилище, вы очистите его. Нет никаких доказательств, которые не были подтверждены. Нет никаких доказательств того, что он не был повторно добавлен по какой-либо причине. Проблема полностью зависит от вашего случая и требует stackoverflow.com/help/mcve