Я использую промежуточное ПО NUXT, чтобы проверить, вошел ли пользователь в систему или нет, и соответственно защитить определенные маршруты. Проблема в том, что когда вошедший в систему пользователь обновляет страницу на одном из защищенных маршрутов, сеанс теряется.
У меня есть геттер в моем хранилище Vuex (с использованием NUXT):
getters: {
isLoggedIn (state) {
return !isEmpty(state.auth.email) && !isEmpty(state.auth.token)
}
}
Я обращаюсь к этому геттеру в промежуточном программном обеспечении, чтобы перенаправить неаутентифицированных пользователей на страницу входа:
let isLoggedIn = context.store.getters.isLoggedIn
if (!isLoggedIn && protectedRoutes.includes(context.route.name)) {
let language = context.store.language ? context.store.language : 'en'
context.redirect(`/${language}/login`)
}
Но это не работает. Когда я получаю console.log () значение этого геттера, я получаю TRUE на стороне клиента и FALSE на стороне сервера. Как я могу синхронизировать их с Vue / Vuex?
Более того, всякий раз, когда я console.log () создаю объект контекста на стороне сервера, он, по-видимому, находится в исходном состоянии. Должно быть, что-то в корне не так с моим подходом.