Я создал интерфейс nuxt с функциями аутентификации на основе модуля nuxt-apollo . Мой макет будет меняться в зависимости от того, вошел ли пользователь в систему или нет. Для этого у меня есть простой v-if=isAuthenticated
в моем макете. Вот код ниже:
<template>
<v-app>
<!-- authenticated user -->
<template v-if="isAuthenticated">
<v-content>
<v-container>
<v-row>
<v-col>
<v-fade-transition mode="out-in">
<nuxt />
</v-fade-transition>
</v-col>
</v-row>
</v-container>
</v-content>
</template>
<!-- unauthenticated user -->
<template v-else>
<v-content>
<v-container>
<v-fade-transition mode="out-in">
<nuxt />
</v-fade-transition>
</v-container>
</v-content>
</template>
</v-app>
</template>
<script>
export default {
data() {
return {
};
},
computed: {
isAuthenticated() {
return !!this.$apolloHelpers.getToken();
}
}
};
</script>
!!this.$apolloHelpers.getToken()
- это то, что используется в промежуточном программном обеспечении из примера приложения auth для разрешения или запрета аутентифицированных маршрутов.
Проблема: Когда пользователь входит в систему и установлен токен, вычисляемое свойство не выполняется повторно и макет не обновляется. Тем не менее, он корректно отображает, если я обновлю sh страницу.
Я ранее использовал модуль nuxt auth , и он работал нормально при использовании их помощника v-if="$auth.loggedIn"
для переключения.
Поскольку я совсем новичок в Vue, я подумал, упускаю ли я очевидное или нет, как мне поступить.