@kirill-93

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

Сайт SPA. Нужно иметь возможность разлогинивать пользователя принудительно.
Классическое решение с использованием middleware такое:
//middleware
if (!store.state.authenticated) {
    return redirect('/login')
}

Но проблема тут в том, что свойство authenticated заполняется при загрузке страницы, а дальше, при навигации по сайту, проверки уже нет.
Тогда в голову приходит такой вариант: повесить на ВСЕ ajax запросы обработчик и проверять, не вернул ли сервер ошибку 401. Если вернул, то разлогинивать пользователя и перекидывать на страницу логина.
На сервере, соответственно, проверять пользователя в методах, где это нужно и возвращать 401.
В этом случае проверка происходит не только в момент загрузки приложения, но и при каждом последующем обращении к серверу.
Третий вариант - сокеты, но он не подходит.
Подскажите, пожалуйста, хорош ли вариант с проверкой 401 для всех запросов? Может я чего-то не учел?
  • Вопрос задан
  • 225 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
При всех запросах можно проверять на 200.
Если не 200, то вызывается какой-то обработчик ошибок, которыей смотрит что там, 401, или может 500, или 404, и делает соответствующие действитя.
А еще бывает обрыв соединения и таймаут, которые тоже неплохо бы обработать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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