繁体   English   中英

如何保护 Vue.js 和 Laravel 中的前端路由?

[英]How to Protect Frontend Route in Vue.js and Laravel?

如何保护前端的 Vue.js 路由。 我正在为博客使用 Laravel 和 vue.js 但是当我为前端路由时,如果管理员登录,当我点击前端 url 那么如何防止这个面板登录?

let routes = [
        { path: '/dashboard', component: require('./components/Dashboard.vue').default},
        { path: '/profile', component: require('./components/Profile.vue').default },
        { path: '/users', component: require('./components/Users.vue').default },
        //Frontent routes
        { path: '/', component: require('./components/frontend/blog/PublichHome.vue').default },
        { path: '/blog', component: require('./components/frontend/blog/Blog.vue').default },
        { path: '*', component: require('./components/NotFound.vue').default }
      ]

我假设您使用的是 VueRouter,是吗? 如果是这样,您将要添加类似

function guard(to, from, next){
    if (to.name !== 'Login' && !isAuthenticated) next({ name: 'Login' })
    else next()
}

let routes = [
        { 
            path: '/dashboard', 
            component: require('./components/Dashboard.vue').default, 
            beforeEnter: guard(to, from, next),
        }
        { path: '/profile', component: require('./components/Profile.vue').default, beforeEnter: guard(to, from, next),},
        { path: '/users', component: require('./components/Users.vue').default, beforeEnter: guard(to, from, next),},
        //Frontent routes
        { path: '/', component: require('./components/frontend/blog/PublichHome.vue').default },
        { path: '/blog', component: require('./components/frontend/blog/Blog.vue').default },
        { path: '*', component: require('./components/NotFound.vue').default }
      ]

这是有关该主题的VueRouter Docs Navigation Guards的链接,以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM