1

用户第一次登录后,我将他重定向到CreateProfile页面,他在其中键入所有配置文件信息。之后我想让该站点不再可访问,例如如果用户在浏览器中键入 URL(例如www.myproject.com/createProfile)。

如何确保只有来自我的登录页面的重定向才能访问CreateProfile页面?也就是说,如果用户手动输入 URL,他将被重定向到例如 404 页面。

目前我的CreateProfile路线如下所示:

{
  path: '/createprofile',
  name: 'CreateProfile',
  component: CreateProfile,
  beforeEnter: (to, from, next) => {
    if (store.getters.getUserStatus == true) {
      next()
    } else {
      next({ name: 'Login' })
    }
  }
}

谢谢!!

4

1 回答 1

1

您可以检查导航守卫中的from路由对象以测试先前的路由位置。beforeEnter

例如,检查from.name属性是否为Login,仅true当存在您想要的重定向时才会出现。(假设您不提供<router-link>from Login):

beforeEnter: (to, from, next) => {
  const isRedirected = from.name === 'Login';
  if (isRedirected && store.getters.getUserStatus == true) {
    next()
  } else {
    next({ name: 'Login' })
  }
}
于 2021-02-18T15:26:23.930 回答