最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • uniapp + Vue3項(xiàng)目中安裝和使用uView Plus的完整配置指南

    uniapp + Vue3項(xiàng)目中安裝和使用uView Plus的完整配置指南

    文章主要介紹了如何解決在uni-app+Vue3項(xiàng)目中使用uViewPlus時(shí)遇到的問題,包括項(xiàng)目初始化、核心配置、故障排除方案以及常見問題診斷
    2025-12-12
  • vue 表單之通過v-model綁定單選按鈕radio

    vue 表單之通過v-model綁定單選按鈕radio

    這篇文章主要介紹了vue 表單之v-model綁定單選按鈕radio的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Vue.js實(shí)現(xiàn)表格渲染的方法

    Vue.js實(shí)現(xiàn)表格渲染的方法

    今天小編就為大家分享一篇對Vue.js實(shí)現(xiàn)表格渲染的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 手把手教你如何運(yùn)行一個(gè)前端uniapp項(xiàng)目

    手把手教你如何運(yùn)行一個(gè)前端uniapp項(xiàng)目

    這篇文章主要介紹了如何設(shè)置和運(yùn)行一個(gè)基于uni-app框架的項(xiàng)目,包括安裝必要的軟件、克隆項(xiàng)目并安裝依賴,以及如何使用HBuilderX進(jìn)行項(xiàng)目運(yùn)行和調(diào)試,需要的朋友可以參考下
    2025-01-01
  • Vue NextTick介紹與使用原理

    Vue NextTick介紹與使用原理

    我們對Vue中data數(shù)據(jù)的修改會導(dǎo)致界面對應(yīng)的響應(yīng)變化,而通過nextTick方法,可以在傳入nextTick的回調(diào)函數(shù)中獲取到變化后的DOM,講起來可能還是有點(diǎn)夢幻,下面我們直接使用nextTick體驗(yàn)一下效果
    2022-08-08
  • vue+vant-UI框架實(shí)現(xiàn)購物車的復(fù)選框全選和反選功能

    vue+vant-UI框架實(shí)現(xiàn)購物車的復(fù)選框全選和反選功能

    這篇文章主要介紹了vue+vant-UI框架實(shí)現(xiàn)購物車的復(fù)選框全選和反選功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • vue父子組件進(jìn)行通信方式原來是這樣的

    vue父子組件進(jìn)行通信方式原來是這樣的

    這篇文章主要為大家詳細(xì)介紹了vue父子組件進(jìn)行通信方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Vue雙向數(shù)據(jù)綁定失效的常見場景和解決方案

    Vue雙向數(shù)據(jù)綁定失效的常見場景和解決方案

    在 Vue 2 和 Vue 3 中,雙向數(shù)據(jù)綁定(主要通過?v-model?實(shí)現(xiàn))可能會在一些特定場景下失效,這些情況通常與 Vue 的響應(yīng)式系統(tǒng)限制或不正確的用法有關(guān),以下是兩者的主要失效場景和解決辦法,需要的朋友可以參考下
    2025-09-09
  • 使用vue腳手架(vue-cli)搭建一個(gè)項(xiàng)目詳解

    使用vue腳手架(vue-cli)搭建一個(gè)項(xiàng)目詳解

    這篇文章主要介紹了vue腳手架(vue-cli)搭建項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 詳解Vue.js項(xiàng)目API、Router配置拆分實(shí)踐

    詳解Vue.js項(xiàng)目API、Router配置拆分實(shí)踐

    這篇文章主要介紹了詳解Vue.js項(xiàng)目API、Router配置拆分實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03

最新評論

莱州市| 平原县| 阳西县| 娄烦县| 苍溪县| 泗水县| 红河县| 秦皇岛市| 全南县| 南宁市| 邵东县| 许昌市| 登封市| 嵊州市| 报价| 和田市| 延安市| 从江县| 丁青县| 通江县| 莱州市| 陇南市| 海丰县| 周口市| 望奎县| 雷山县| 明水县| 河池市| 买车| 枣阳市| 客服| 北流市| 温宿县| 方正县| 收藏| 双流县| 尉犁县| 苏州市| 玉山县| 天津市| 吴川市|