NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
# 3.路由导航守卫控制访问权限 (在路由 的js 添加) 如果**用户没有登录**,但是**直接通过URL访问特定页面**,需要**重新导航到登录页面**。 ~~~ //为路由对象,添加beforeEach 导航守卫 router.beforeEach((to, from, next) => { //如果用户访问的登录页,直接放行 if (to.path === '/login') return next() //从sessionStorage 中获取到保存的token值 const tokenStr = window.sessionStorage.getItem( 'token') //没有token,强制跳转到登录页 if (!tokenStr) return next('/login' ) next () }) ~~~ 注解 ~~~ router.beforeEach((to, from, next) => { //“to”: 即将要进入的目标 路由对象; //"from": 当前导航正要离开的路由对象; //“next”: Function: 确保要调用 next 方法,否则钩子就不会被 resolved。 //next 是一个函数,表示放行 //next() 放行 next('./login') 强制跳转 //登录也不需要权限 直接放行 if (to.path === '/login') returnnext(); //获取token const tokenStr = window.sessionStorage.getItem('token'); //没有token 强制停留在 /login if (!tokenStr) returnnext('/login'); //存在 直接放行 next(); }) ~~~ ![](https://img.kancloud.cn/e8/95/e8951acbfea79bad9dfd353511c08af0_1456x1094.png)