@DangeonFurry

Как хранить состояние авторизованного пользователя в spa и как ее правильно обновлять?

Доброго всем дня, может кто рассказать как правильно хранить флаг авторизации на сайте, а именно:
У меня jwt авторизация, предположим пользователь залогинился, я меняю флаг например в куках или локалстораже на isLogin: true, из за чего у меня перерисовывается интерфейс (например убирается кнопка войти и появляется кнопка выйти), так вот, в следующий раз когда он зайдет, у него кнопка выйти останется, хотя токен по факту уже сгорел и его нужно обновить, следовательно кнопки выйти уже не должно быть, должна быть кнопка войти. Но делать проверку каждый раз при заходе на главную страницу валидна ли ранняя авторизация мне кажется немного не правильна, при каждом заходе на страницу будет посылаться запрос на сервер, при каждом обновлении будет посылаться запрос на сервер, мне кажется можно как то более лаконично это сделать, можете подсказать как?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 2
victormayorov
@victormayorov
Frontend разработчик
Посоветовал бы сделать общий сервис с запросами, например написал бы класс с основными методами(get,post,patch,delete etc) и наследовался бы от него для отправки запросов где нужна авторизация, например получения инфы о пользователе. В родительском классе можно вытаскивать перед запросами из localstorage jwt токен и проверять его время жизни, если оно вышло, то отправляем запрос на обновление токена, обновляем токен и разрешаем запрос для получения инфы о пользователе, иначе меняешь статус isLogin: false и у тебя интерфейс автоматом перерисовывается. Как-то так, надеюсь мое краткое объяснение поможет :)
Ответ написан
Комментировать
Во-первых зачем флаг - у тебя есть токен, вот тебе и флаг
Во-вторых встрой эти данные прямо в страницу, если сервер авторизации и сервер с которым работаешь это по факту один и тот же сервак. Т.е. главная же у тебя все равно грузится?
Добавь в нее объект json как-нибудь так:
<script type="extension/settings" name="user">{"token":""}</script>

И читай эти параметры при загрузки приложения. А потом храни в LS. Ну а если токен устарел - значит устарел.
Если же серверы разные - то тут никак не пройдешь мимо запроса к серверу авторизации. Смело делай его - в чем проблема? Почему это вдруг не правильно?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AlexProWeb
поставить метку в куки хешированную
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы