vue-router導航守衛,限制頁面訪問權限


在項目開發過程中,經常會需要登錄、注冊、忘記密碼等,也有很多頁面是需要登錄后才能訪問,有些頁面是無需登錄就可以訪問的,那么vue是怎么來限制這些訪問權限問題的呢?

vue-router導航守衛的beforeEach方法做權限限制,了解更多導航守衛詳情,請點擊  這里  訪問官方文檔

在main.js中使用:

router.beforeEach((to, from, next) => {   // 使用鈎子函數對路由進行權限跳轉
const role = localStorage.getItem('username');
  if ( !role && to.path !== '/login' && to.path !== '/register' ) {  // 如果用戶不存在,並且訪問的頁面不是登錄和注冊,就前往登錄頁面
    next('/login');
  } else if ( to.meta.permission ) {  // 如果是管理員權限則可進入,這里只是簡單的模擬管理員權限而已
    role === 'admin' ? next() : next('/403');
  } else {
 
  }
})
 
還有一種方法,是使用vue-router的重定向功能,實現路徑的限制:
在router的index.js中:
export default new Router({
routes: [
  {
    path: '/',
    redirect: '/home'  // 任何沒有具體路徑的訪問,我都讓它重定向到home主頁,重定向在限制用戶手動修改URL時誤操作很管用
  },
  {
    path: '*',
    redirect: '/404'
  }
]
 
vue-router權限控制我暫時了解的就是兩種,如果還有其他的我會繼續補充,希望能給你提供到幫助
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM