Я тестирую маршрут с именем Create Post
, который должен быть доступен только если пользователь вошел в систему.
Это мой beforeEach
охранник маршрутизатора
this.beforeEach((to, from, next) => {
if (to.matched.some(record => record.meta.requiresAuth)) {
// eslint-disable-next-line no-extra-boolean-cast
// if user is set in state, proceed
if (!!UsersModule.loggedInUser.token) {
next();
// if user is not set in state, go back to login
} else {
next({
path: "/login",
params: { nextUrl: to.fullPath }
});
}
}
return next();
});
В панели навигации шаблон, когда пользователь нажимает create post
, этот метод называется
onClickCreatePost() {
this.$router.push("/create");
}
, как выглядят маршруты
export default [
{
path: "/",
name: "Home",
component: Home
},
{
path: "/login",
name: "login",
component: Login
},
{
path: "/register",
name: "register",
component: Register
},
{
path: "/create",
name: "create-post",
component: CreatePost,
meta: {
requiresAuth: true
}
}
];
Вот странная часть и мой вопрос
Случай 1: когда я на Домашней странице и нажимаю Create Post
->, я перехожу на страницу входа
Случай 2: Когда я нахожусь на странице Регистрации и нажимаю Create Post
-> Я перехожу к логину
Случай 3: Когда я нахожусь на странице входа в систему и нажимаю Create Post
->, я перехожу к созданию сообщения
Почему это не Дело 3 перенаправить обратно в логин? Эта реализация неверна?