Vue.js
+webpack
构建的项目,没有使用vuex
怎么在没有登陆的时候直接跳转到用户登陆界面进行登陆?
没有登陆就禁止访问其他界面
vue-router
该怎么控制
Vue.js
+webpack
构建的项目,没有使用vuex
怎么在没有登陆的时候直接跳转到用户登陆界面进行登陆?
没有登陆就禁止访问其他界面
vue-router
该怎么控制
const whiteList = ['/login', '/authredirect']// 免登录白名单
router.beforeEach((to, from, next) => {
if (cookieGetToken()) { // determine if there has token
/* has token*/
if (to.path === '/login') {
next({ path: '/' })
}
next()
} else {
/* has no token*/
if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入
next()
} else {
next('/login') // 否则全部重定向到登录页
}
}
})
贴代码和注释
const whiteList=['/login'];//不需要登录能访问的path
router.beforeEach((to, from, next) => {
console.log('beforeEach');
var userInfo= JSON.parse(sessionStorage.getItem('userInfoStorage'));//获取缓存看是否登录过
if(whiteList.indexOf(to.path)<0){//访问了需要登录才能访问的页面
if(userInfo){//登录过来直接进去
next();
}else{
if(to.path=='/login'){
next();
}else{
next('/login');
}
}
}
else{
next();
}
});
router.beforeEach((to, from, next) => {
next(); //前往下一个页面
})
router.afterEach(transition => {
});
4 回答4.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答5.1k 阅读
2 回答2.6k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
5 回答2.3k 阅读
比如:
代码可能有点问题,但意思是这么个意思