Сайт SPA. Нужно иметь возможность разлогинивать пользователя принудительно.
Классическое решение с использованием middleware такое:
//middleware
if (!store.state.authenticated) {
return redirect('/login')
}
Но проблема тут в том, что свойство authenticated заполняется при загрузке страницы, а дальше, при навигации по сайту, проверки уже нет.
Тогда в голову приходит такой вариант: повесить на ВСЕ ajax запросы обработчик и проверять, не вернул ли сервер ошибку 401. Если вернул, то разлогинивать пользователя и перекидывать на страницу логина.
На сервере, соответственно, проверять пользователя в методах, где это нужно и возвращать 401.
В этом случае проверка происходит не только в момент загрузки приложения, но и при каждом последующем обращении к серверу.
Третий вариант - сокеты, но он не подходит.
Подскажите, пожалуйста, хорош ли вариант с проверкой 401 для всех запросов? Может я чего-то не учел?