欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3系統(tǒng)進(jìn)入頁面前的權(quán)限判斷和重定向方式

 更新時(shí)間:2024年03月12日 10:56:03   作者:鶴渺  
這篇文章主要介紹了vue3系統(tǒng)進(jìn)入頁面前的權(quán)限判斷和重定向方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

應(yīng)用場景

經(jīng)常有系統(tǒng)的權(quán)限判定,比如某個(gè)頁面只能角色a進(jìn)入,或者一個(gè)系統(tǒng)多個(gè)頁面都有權(quán)限設(shè)置,根據(jù)用戶的權(quán)限判斷是否能進(jìn)入頁面,這類權(quán)限控制應(yīng)該是比較基礎(chǔ)和常見的吧。

這次就記錄一下我之前做的權(quán)限控制流程。

開發(fā)流程

主要通過進(jìn)入頁面前的判斷:router.beforeEach()

這里實(shí)現(xiàn)的控制,例如:

  • 進(jìn)入頁面時(shí)判斷是否登錄,如果未登錄就跳到login頁面,如果登錄了就進(jìn)入到項(xiàng)目列表頁;
  • 進(jìn)入項(xiàng)目詳情頁,需要判斷用戶是否有權(quán)限;
  • 諸如以上。

詳細(xì)開發(fā)流程

我在根目錄文件下,新增一個(gè)permission.js頁面,并在main.js中引入,借助router的路由攔截功能,實(shí)現(xiàn)權(quán)限判斷。

1.引入權(quán)限控制文件

項(xiàng)目結(jié)構(gòu)如下:

在main.js引入

 

2.權(quán)限控制詳細(xì)

下面是permission里的權(quán)限控制的主要操作。

import router, { asyncRoutes } from '@/router'
import { getToken, setToken, removeToken } from '@/utils/auth'
import getPageTitle from '@/utils/getPageTitle'
//白名單
const whiteList = ['/login', '/404', '/401', '/500'] // no redirect whitelist
router.beforeEach(async (to, from, next) => {
  // set page title
  document.title = getPageTitle(to.meta.title)
  const hasToken = getToken()
  let path = to.path
  // 白名單中路由直接放行
  if (whiteList.includes(path)) {
    next()
    return
  }
//如果已登錄,有token,則跳到重定向頁面
  if (hasToken) {
    if (to.path === '/login') {
      // if is logged in, redirect to the home page
      next({ path: '/' })
    } 
    //在這里可以進(jìn)行其他判斷,如果已經(jīng)登錄,并且不是在登錄頁面,即在頁面C,那么可以獲取用戶的角色權(quán)限 ,對用戶是否能進(jìn)入頁面C進(jìn)行判斷
    else {
      next()
    }
   
  } else {
    //whiteList 里的內(nèi)容不需要驗(yàn)簽
    if (whiteList.indexOf(to.path) !== -1) {
      next()
    } else {
      //無登錄token,重定向,登錄后跳轉(zhuǎn)
      if (to.query.token) {
        next(`/login?redirect=${to.path}?token=${to.query.token}`)
      } else {
         next(`/login`)
      }
      
    }
  }
})
 
router.afterEach(async (to, from, next) => {
  if (to.path === '/login') {
 
  } else {
    //調(diào)接口,記錄日志
   //……
  }
})

總結(jié):

其實(shí)上面主要借助的是路由守衛(wèi)的攔截,對權(quán)限進(jìn)行控制。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解vue element plus多語言切換

    詳解vue element plus多語言切換

    這篇文章主要為大家介紹了vue element plus多語言切換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • vue中slot插槽的參數(shù)匯總及使用方案

    vue中slot插槽的參數(shù)匯總及使用方案

    Vue.js中的插槽(slot)是一種機(jī)制,允許你在組件的模板中預(yù)留一些位置,以便父組件可以將任意內(nèi)容插入到這些位置,這使得組件更加靈活和可復(fù)用,本文主要介紹了vue中slot插槽的參數(shù)匯總及使用方案,需要的朋友可以參考下
    2024-03-03
  • vue3.0 加載json的方法(非ajax)

    vue3.0 加載json的方法(非ajax)

    這篇文章主要介紹了vue3.0 加載json的方法(非ajax),幫助大家更好的理解和學(xué)習(xí)vue,感興趣的朋友可以了解下
    2020-10-10
  • 關(guān)于Vue中keep-alive的作用及使用方法

    關(guān)于Vue中keep-alive的作用及使用方法

    keep-alive是Vue的內(nèi)置組件,當(dāng)它包裹動態(tài)組件時(shí),會緩存不活動的組件實(shí)例,該組件將不會銷毀,這篇文章主要介紹了關(guān)于Vue中keep-alive的作用是什么?怎么使用,需要的朋友可以參考下
    2023-04-04
  • vue Tab切換以及緩存頁面處理的幾種方式

    vue Tab切換以及緩存頁面處理的幾種方式

    這篇文章主要介紹了vue Tab切換以及緩存頁面處理的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 基于Vue3定制復(fù)雜組件滾動條的實(shí)現(xiàn)

    基于Vue3定制復(fù)雜組件滾動條的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用vue3定制復(fù)雜組件的滾動條,文中通過示例代碼講解詳細(xì),需要的朋友們下面就跟隨小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • vue3?自定義指令控制按鈕權(quán)限的操作代碼

    vue3?自定義指令控制按鈕權(quán)限的操作代碼

    這篇文章主要介紹了vue3?自定義指令控制按鈕權(quán)限,為了提高用戶體驗(yàn),當(dāng)該按鈕無權(quán)使用時(shí),使用el-tooltip功能進(jìn)行提醒,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • element-ui中el-input只輸入數(shù)字(包括整數(shù)和小數(shù))

    element-ui中el-input只輸入數(shù)字(包括整數(shù)和小數(shù))

    開發(fā)中有時(shí)候需要input只能輸入數(shù)字,下面這篇文章主要給大家介紹了關(guān)于element-ui中el-input只輸入數(shù)字(包括整數(shù)和小數(shù))的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Vue開發(fā)實(shí)現(xiàn)滑動驗(yàn)證組件

    Vue開發(fā)實(shí)現(xiàn)滑動驗(yàn)證組件

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue開發(fā)實(shí)現(xiàn)簡單的滑動驗(yàn)證組件,并且適配移動和PC,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-07-07
  • vue頁面使用阿里oss上傳功能的實(shí)例(二)

    vue頁面使用阿里oss上傳功能的實(shí)例(二)

    本篇文章主要介紹了vue頁面使用阿里oss上傳功能的實(shí)例(二),主要介紹OSS管理控制臺設(shè)置訪問權(quán)限、角色等,有興趣的可以了解一下
    2017-08-08

最新評論