vue2.0 实现登录过后,所有的页面无需登录, 未登录。访问任何页面的地址都调到登录页,怎么实现呢

vue 实现登录过后,所有的页面无需登录, 未登录。访问任何页面的地址都调到登录页,实现思路,
项目使用的 是vue2.0 + axios,

阅读 7.9k
3 个回答

关键词:
基于token的身份验证,JWT,axios拦截器

链接:
参考链接

在路由配置中,需要登录的路由加上

 meta: { requiresAuth: true }

在main.js中判断用户是否登录,未登录跳转到登录页

router.beforeEach((to, from, next) => {
    if (to.matched.some(record => record.meta.requiresAuth)) {
        //这里判断用户是否登录,我例子中是验证本地存储是否有token
        if (!localStorage.token) {
            next({
                path: '/login',
                query: { redirect: to.fullPath }
            })
        } else {
            next()
        }
    } else {
        next() // 确保一定要调用 next()
    }
})

将登录状态保存在本地storage或cookie或vuex(最好是vuex),然后其他的跟上面差不多

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题