Я работаю над приложением (Frontend: React, Backend: Laravel). Когда я делаю запрос на вход в систему, я получаю access_token с сервера Laravel. Я сохраняю этот access_token в localStorage.
Теперь проблема в том, что каждый может увидеть access_token в инструментах разработчика в браузере. access_token также отображается в заголовках запросов.
Если пользователь какое-то время не находится на своем месте, то другой пользователь может украсть этот access_token и вставьте в свой браузер, и теперь другой пользователь сможет получить доступ к приложению в качестве первого пользователя. Кроме того, я видел некоторые дискуссии на других сайтах о том, что localStorage подвержен атаке XSS.
Мой вопрос заключается в том, где должен храниться этот access_token. Если я сохраню access_token в некоторой переменной javascript, то access_token будет потерян, когда пользователь закроет и снова откроет браузер или обновит страницу. И его снова попросят войти в систему, что плохо для взаимодействия с пользователем.
Как я могу защитить access_token от несанкционированного доступа? Каковы лучшие практики?