vue-meteor-demo icon indicating copy to clipboard operation
vue-meteor-demo copied to clipboard

vue router guard

Open mehrdadphp opened this issue 6 years ago • 0 comments

hi Akryum

I made a new project with Meteor and vue js Now I want to be a guardian for registration and login and user panel, but this project does not work and it does not work.

Rouetrs : src/routes.js


export default [
    {
        path: '/login',
        name: 'login',
        component: Login,
        meta: {
            forVisitor : true,
        }
    },
    {
        path: '/register',
        name: 'Register',
        component: Register,
        meta: {
            forVisitor : true,
        }
    },
    {
        path: '/user',
        name: 'DashboardPerson',
        component: DashboardPerson,
        meta: {
            forAuth : true,
        }
    },
]

code guard : src/app.js


router.beforeEach((to, from, next) => {
        console.log('Meteor', Meteor.userId())
        if (to.matched.some(record => record.meta.forVisitor)) {
            if (Meteor.userId()) {
                next('/user')
            }
        }

        if (to.matched.some(record => record.meta.forAuth)) {
            if (!Meteor.userId()) {
                next('/login')
            }
        }
    })

Thank you for helping me .

mehrdadphp avatar Mar 25 '18 09:03 mehrdadphp