基于身份验证的登录和注销用户(使用Laravel和Vue导航)

时间:2018-08-14 14:04:32

标签: laravel laravel-5 vue.js vuejs2

我正在使用laravel身份验证来确定用户看到的内容。

我想要什么:

  • 如果用户登录,则可以通过组件中的路径访问所有组件。
  • 如果用户注销,则他们将无法访问所有路径。我只设置了默认页面以及它们的注册和登录路径。

master.blade.php

@Guest
   <navigationloggedout></navigationloggedout>
   <p>Not logged in</p>
   <router-view></router-view>
@else
   <navigationloggedin></navigationloggedin>
   <p>Logged in</p>
   <router-view></router-view>
@endGuest

如何仅允许用户在未登录时访问某些vue页面。如何为未登录的用户设置不同的默认路径。 下面的路由显示了用户登录后的默认组件。

路线:

{
    path: '/',
    component: home_logged_in
}

1 个答案:

答案 0 :(得分:1)

我使用路由器保护(https://router.vuejs.org/guide/advanced/navigation-guards.html)将路由器用于身份验证

const router = new Router({
    mode: "history",
    routes: [
        {
            path: "/open-page",
            name: "openPage",
            component: OpenPage
        },
        {
            path: "/secure-page",
            name: "securePage",
            component: SecurePage,
            meta: {
                authRequired: true
            }
        }
    ]
});

router.beforeEach((to, from, next) => {
    if (!to.meta.authRequired) {
        next();
    } else if (store.getters["user/isAuthenticated"]) {
        next();
    } else {
        next({
            path: "/open-page"
        });
    }
});