Vue Маршрутизатор - маршрутизатор переходит на безопасную страницу, когда он не должен - PullRequest
0 голосов
/ 05 марта 2020

Я тестирую маршрут с именем 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 перенаправить обратно в логин? Эта реализация неверна?

...