#vue.js #vuejs2 #vue-router
#vue.js #vuejs2 #vue-router
Вопрос:
При запуске Vue 2.6.11
и маршрутизатора 3.2.0
Vue аутентификация обрабатывается через серверную часть Rails, доставляющую JWT в приложение Vue. JWT сохраняются в localStorage после входа пользователя в систему.
В моем приложении есть 2 основные страницы, домашняя страница и панель мониторинга. Домашняя страница — это, по сути, просто целевая страница, на которой просто объясняется, о чем приложение кнопка входа, а моя панель мониторинга — это место, где зарегистрированные пользователи получают доступ к фактической функциональности приложения. Я бы хотел, чтобы возвращающиеся пользователи автоматически перенаправлялись на панель мониторинга при посещении корневого URL, поскольку им не будет интересно просматривать домашнюю страницу, если они уже создали учетную запись.
Как правильно с этим справиться? Я знаю, что мог бы просто выполнить router.beforeEach
проверку JWT, а затем перенаправить его оттуда, но проблема в том, что это также будет мешать другим страницам, заставляя их всегда перенаправлять на панель управления, чего я, очевидно, не хочу. Домашняя страница — это единственная страница, которую я хочу, чтобы зарегистрированные пользователи не видели.
Ответ №1:
Вы все еще можете использовать beforeEach
для этого. Просто проверьте, является ли маршрут, по которому вы переходите, домашней страницей:
router.beforeEach((to, from, next) => {
if (to.name === 'Home' amp;amp; isAuthenticated) {
next({ name: 'Dashboard' })
} else next()
})