Я создал интерфейс 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, чтобы разрешить или запретить аутентифицированные маршруты.
Проблема: когда пользователь входит в систему и установлен токен, вычисленное свойство не выполняется повторно и макет не обновляется. Однако он отображается правильно, если я обновляю страницу.
Раньше я использовал модуль nuxt auth, и он отлично работал при использовании их помощника v-if="$auth.loggedIn"
для переключения.
Поскольку я новичок в Vue, мне было интересно, упускаю ли я очевидное или мне следует действовать иначе.