// 如果用户没有登录,但是直接通过RUL访问特定页面,需要重新导航到登录页面,实现的路由导航守卫控制访问权限的代码如下:
// 为路由对象,添加beforeEach导航守卫
router.beforeEach((to, form, next) =>{
// 如果用户访问的登录页,直接放行
if(to.path === '/login') return next()
// 从sessionStorage中获取保存的token值
const tokenStr = window.sessionStorage.getItem('token')
// 没有token,强制跳转到登录页面
if(!tokenStr) return next('/login')
next()
})
在进行登录页面时,需要能够进行相关的登录设置,使其能够确保没有权限的用户,通过对应的URL地址无法访问对应的有权限的页面。这样可以在不同的路由访问中,可以进行对应的访问
// 如果用户没有登录,但是直接通过RUL访问特定页面,需要重新导航到登录页面
// 为路由对象,添加beforeEach导航守卫
to表示将要访问的路径
from表示从哪个页面路径跳转而来的
next则表示要放行的函数
接下来就可以判断to所对应的哪个地址,是否是/login
如果等于/login,那就证明用户访问登录页
登录页面是没有权限的,任何用户都是可以访问登录页,如果用户访问的是登录,
就直接调用next函数,代表放行,允许访问登录页面
如果访问的不是登录页,判断sessionStorage中是否存了token,判断是否有token,
如果没有token,则证明没有登录,因此就无法访问有权限的页面,此时就强制用户跳转到/login页面