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

vue實(shí)現(xiàn)路由鑒權(quán)和不同用戶登錄

 更新時(shí)間:2024年04月09日 10:12:48   作者:floret. 小花  
這篇文章主要為大家詳細(xì)介紹了vue中實(shí)現(xiàn)路由鑒權(quán)和不同用戶登錄的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

路由鑒權(quán)

路由鑒權(quán)是指根據(jù)用戶權(quán)限控制用戶可以訪問哪些路由。

Vue 中實(shí)現(xiàn)路由鑒權(quán)

Vue 中可以結(jié)合 Vuex 和路由守衛(wèi)來實(shí)現(xiàn)路由鑒權(quán)。

1. 使用 Vuex 存儲(chǔ)用戶權(quán)限

創(chuàng)建一個(gè) Vuex store 來存儲(chǔ)用戶權(quán)限。

在登錄成功后,將用戶權(quán)限存儲(chǔ)在 Vuex store 中。

在路由守衛(wèi)中檢查用戶權(quán)限。

2. 使用路由守衛(wèi)

使用 beforeEach 鉤子函數(shù)來檢查用戶權(quán)限。

如果用戶沒有權(quán)限訪問該路由,則重定向到其他路由。

示例

// Vuex store
 
const store = new Vuex.Store({
  state: {
    user: {
      permissions: []
    }
  },
  mutations: {
    setUserPermissions(state, permissions) {
      state.user.permissions = permissions;
    }
  }
});
 
// 路由守衛(wèi)
 
router.beforeEach((to, from, next) => {
  const requiredPermissions = to.meta.permissions;
  const userPermissions = store.state.user.permissions;
 
  if (!requiredPermissions || requiredPermissions.length === 0) {
    next();
    return;
  }
 
  if (userPermissions.some(permission => requiredPermissions.includes(permission))) {
    next();
  } else {
    next('/login');
  }
});

不同用戶登錄

1. 使用不同的登錄頁面

為不同的用戶類型創(chuàng)建不同的登錄頁面。

在登錄頁面收集用戶身份信息。

登錄成功后,將用戶身份信息存儲(chǔ)在本地存儲(chǔ)或 cookie 中。

2. 使用不同的 API 接口

為不同的用戶類型提供不同的 API 接口。

在登錄成功后,根據(jù)用戶身份信息選擇要調(diào)用的 API 接口。

示例

// 登錄頁面
 
<template>
  <div>
    <input type="text" v-model="username" />
    <input type="password" v-model="password" />
    <button @click="login">登錄</button>
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      username: '',
      password: ''
    };
  },
  methods: {
    login() {
      const { username, password } = this;
 
      if (username === 'admin' && password === 'admin') {
        // 登錄成功,將用戶身份信息存儲(chǔ)在本地存儲(chǔ)中
        localStorage.setItem('userType', 'admin');
        this.$router.push('/home');
      } else {
        // 登錄失敗
        alert('登錄失敗');
      }
    }
  }
};
</script>
 
// API 接口
 
// 普通用戶
const api = {
  getUser() {
    // ...
  }
};
 
// 管理員
const adminApi = {
  getUser() {
    // ...
  },
  deleteUser() {
    // ...
  }
};
 
// 在登錄成功后,根據(jù)用戶身份信息選擇要調(diào)用的 API 接口
 
const user = JSON.parse(localStorage.getItem('user'));
 
if (user.type === 'admin') {
  // 使用管理員 API 接口
  adminApi.getUser();
} else {
  // 使用普通用戶 API 接口
  api.getUser();
}

總結(jié)

Vue 中可以結(jié)合 Vuex 和路由守衛(wèi)來實(shí)現(xiàn)路由鑒權(quán)。

可以使用不同的登錄頁面和 API 接口來實(shí)現(xiàn)不同用戶登錄。

以上就是vue實(shí)現(xiàn)路由鑒權(quán)和不同用戶登錄的詳細(xì)內(nèi)容,更多關(guān)于vue路由鑒權(quán)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue3中setup語法糖下父子組件間傳遞數(shù)據(jù)的方式

    vue3中setup語法糖下父子組件間傳遞數(shù)據(jù)的方式

    Vue3中父組件指的是包含一個(gè)或多個(gè)子組件的組件,它們通過props和事件等方式來傳遞數(shù)據(jù)和通信,這篇文章主要介紹了vue3中setup語法糖下父子組件間傳遞數(shù)據(jù)的方式,需要的朋友可以參考下
    2023-06-06
  • Vue使用el-table實(shí)現(xiàn)表格跨頁多選

    Vue使用el-table實(shí)現(xiàn)表格跨頁多選

    在我們?nèi)粘m?xiàng)目開發(fā)中,經(jīng)常會(huì)有表格跨頁多選的需求,接下來讓我們用?el-table示例一步步來實(shí)現(xiàn)這個(gè)需求,文中有詳細(xì)的代碼講解,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-08-08
  • Vue 動(dòng)態(tài)添加表單實(shí)現(xiàn)動(dòng)態(tài)雙向綁定

    Vue 動(dòng)態(tài)添加表單實(shí)現(xiàn)動(dòng)態(tài)雙向綁定

    動(dòng)態(tài)表單是一個(gè)常見的需求,本文詳細(xì)介紹了Vue.js中實(shí)現(xiàn)動(dòng)態(tài)表單的創(chuàng)建,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 使用md5在vue中的axios請(qǐng)求時(shí)加密API問題

    使用md5在vue中的axios請(qǐng)求時(shí)加密API問題

    這篇文章主要介紹了使用md5在vue中的axios請(qǐng)求時(shí)加密API問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue2中使用Monaco?Editor的教程詳解

    Vue2中使用Monaco?Editor的教程詳解

    Monaco-editor,一個(gè)vs?code?編輯器,這篇文章主要為大家詳細(xì)介紹了如何在Vue2中使用Monaco?Editor,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • 14個(gè)Vue中易被攻擊的代碼位置小結(jié)

    14個(gè)Vue中易被攻擊的代碼位置小結(jié)

    在?Vue?框架中,哪些地方容易被攻擊呢?寫代碼的時(shí)候要注意什么呢?這篇文章中小編為大家總結(jié)了一些常見的容易受到攻擊的地方,希望對(duì)大家有所幫助
    2024-02-02
  • Vue學(xué)習(xí)筆記進(jìn)階篇之vue-router安裝及使用方法

    Vue學(xué)習(xí)筆記進(jìn)階篇之vue-router安裝及使用方法

    本篇文章主要介紹了Vue學(xué)習(xí)筆記進(jìn)階篇之vue-router安裝及使用方法,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • 詳解vue前后臺(tái)數(shù)據(jù)交互vue-resource文檔

    詳解vue前后臺(tái)數(shù)據(jù)交互vue-resource文檔

    本篇文章主要介紹了vue前后臺(tái)數(shù)據(jù)交互vue-resource文檔,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Vue雙向綁定實(shí)現(xiàn)原理與方法詳解

    Vue雙向綁定實(shí)現(xiàn)原理與方法詳解

    這篇文章主要介紹了Vue雙向綁定實(shí)現(xiàn)原理與方法,結(jié)合實(shí)例形式詳細(xì)分析了發(fā)布者-訂閱者模式、臟值檢查、數(shù)據(jù)劫持與雙向綁定相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-05-05
  • elementui使用el-upload組件實(shí)現(xiàn)自定義上傳的詳細(xì)步驟

    elementui使用el-upload組件實(shí)現(xiàn)自定義上傳的詳細(xì)步驟

    upload上傳是前端開發(fā)很常用的一個(gè)功能,在Vue開發(fā)中常用的Element組件庫也提供了非常好用的upload組件,這篇文章主要給大家介紹了關(guān)于elementui使用el-upload組件實(shí)現(xiàn)自定義上傳的詳細(xì)步驟,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

嘉黎县| 忻州市| 南陵县| 威宁| 临清市| 乌审旗| 乐昌市| 东光县| 柯坪县| 墨脱县| 延吉市| 洞头县| 建昌县| 平泉县| 喀喇沁旗| 咸宁市| 增城市| 汉源县| 湄潭县| 陆川县| 龙江县| 固安县| 三原县| 揭东县| 义乌市| 长岛县| 阿拉善左旗| 大田县| 北票市| 大关县| 青岛市| 高台县| 措美县| 宁海县| 峨眉山市| 滁州市| 祥云县| 汨罗市| 卓尼县| 年辖:市辖区| 贺州市|