Я использую vue-router для установки routeguard в моей системе, перенаправляя пользователя, если есть токен, обратно на панель инструментов, если они пытаются ввести / login или / login / в URL, и наоборот, если у него нет токена.
router.js
router.beforeEach((to, from, next) => {
if (to.fullPath === '/dashboard/') {
if (!store.state.authToken) {
next('/login');
}
}
if (to.fullPath === '/login/') {
if (store.state.accessToken) {
next('/dashboard');
}
}
next();
});
Моя проблема в том, что если я наберу '/ login' или '/ dashboard' (без обратной косой черты в конце),он обошел мою охрану, поэтому я попытался сделать (to.fullPath === '/login/' || '/login')
и (to.fullPath === '/dashboard/' || '/dashboard')
в своем коде, что было успешным буквально 4 часа назад.
Затем я вернулся, и теперь он дает мне ошибки, говоря [vue-router] uncaught error during route navigation
всякий раз, когда я меняю взгляды через URL.
Я понятия не имею, почему он перестал работать, пожалуйста, помогите.
Спасибо!
РЕДАКТИРОВАТЬ: я сделал опечатку и вызывал accessTokenпоэтому вместо authToken охранник потерпел неудачу. Исправлено, спасибо!