国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Vue 頁面權(quán)限控制和登陸驗證

lastSeries / 3048人閱讀

摘要:如果一個頁面,有角色越權(quán)訪問,這時就得做出限制了。我們可以通過或來實現(xiàn),下面用代碼來展示一下如何用控制登陸驗證。

更多文章 頁面權(quán)限控制

頁面權(quán)限控制是什么意思呢?

就是一個網(wǎng)站有不同的角色,比如管理員和普通用戶,要求不同的角色能訪問的頁面是不一樣的。如果一個頁面,有角色越權(quán)訪問,這時就得做出限制了。

Vue 動態(tài)添加路由及生成菜單這是我寫過的一篇文章,
通過動態(tài)添加路由和菜單來做控制,不能訪問的頁面不添加到路由表里,這是其中一種辦法。

另一種辦法就是所有的頁面都在路由表里,只是在訪問的時候要判斷一下角色權(quán)限。如果有權(quán)限就讓訪問,沒有權(quán)限就拒絕,跳轉(zhuǎn)到 404 頁面。

思路

在每一個路由的 meta 屬性里,將能訪問該路由的角色添加到 roles 里。用戶每次登陸后,將用戶的角色返回。然后在訪問頁面時,把路由的 meta 屬性和用戶的角色進行對比,如果用戶的角色在路由的 roles 里,那就是能訪問,如果不在就拒絕訪問。

代碼示例

路由信息

routes: [
    {
        path: "/login",
        name: "login",
        meta: {
            roles: ["admin", "user"]
        },
        component: () => import("../components/Login.vue")
    },
    {
        path: "home",
        name: "home",
        meta: {
            roles: ["admin"]
        },
        component: () => import("../views/Home.vue")
    },
]

頁面控制

// 假設(shè)角色有兩種:admin 和 user
// 這里是從后臺獲取的用戶角色
const role = "user"
// 在進入一個頁面前會觸發(fā) router.beforeEach 事件
router.beforeEach((to, from, next) => {
    if (to.meta.roles.includes(role)) {
        next()
    } else {
        next({path: "/404"})
    }
})
登陸驗證

網(wǎng)站一般只要登陸過一次后,接下來該網(wǎng)站的其他頁面都是可以直接訪問的,不用再次登陸。
我們可以通過 tokencookie 來實現(xiàn),下面用代碼來展示一下如何用 token 控制登陸驗證。

router.beforeEach((to, from, next) => {
    // 如果有token 說明該用戶已登陸
    if (localStorage.getItem("token")) {
        // 在已登陸的情況下訪問登陸頁會重定向到首頁
        if (to.path === "/login") {
            next({path: "/"})
        } else {
            next({path: to.path || "/"})
        }
    } else {
        // 沒有登陸則訪問任何頁面都重定向到登陸頁
        if (to.path === "/login") {
            next()
        } else {
            next(`/login?redirect=${to.path}`)
        }
    }
})

上述所有實現(xiàn),都可以在我的vue輕量級后臺管理系統(tǒng)基礎(chǔ)模板項目里找到

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/104864.html

相關(guān)文章

  • sSpring Boot多模塊+ Shiro + Vue:前后端分離登陸整合,權(quán)限認(rèn)證(一)

    摘要:前言本文主要使用來實現(xiàn)前后端分離的認(rèn)證登陸和權(quán)限管理,適合和我一樣剛開始接觸前后端完全分離項目的同學(xué),但是你必須自己搭建過前端項目和后端項目,本文主要是介紹他們之間的互通,如果不知道這么搭建前端項目的同學(xué)可以先找別的看一下。 前言 本文主要使用spring boot + shiro + vue來實現(xiàn)前后端分離的認(rèn)證登陸和權(quán)限管理,適合和我一樣剛開始接觸前后端完全分離項目的同學(xué),但是你必...

    macg0406 評論0 收藏0
  • 從0到1搭建element后臺框架之權(quán)限

    摘要:項目中按鈕權(quán)限注冊全局自定義指令來完成的。如果對自定義指令不熟的話可以查閱官方文檔。相關(guān)文章鏈接從到搭建后臺框架打包優(yōu)化從到搭建后臺框架優(yōu)化篇 前言 首先還是謝謝各位童鞋的大大的贊贊,你們的支持是我前進的動力!上周寫了一篇從0到1搭建element后臺框架,很多童鞋留言提到權(quán)限問題,這一周就給大家補上。GitHub 一、jwt授權(quán)認(rèn)證 現(xiàn)在大多數(shù)項目都是采用jwt授權(quán)認(rèn)證,也就是我們所...

    NervosNetwork 評論0 收藏0
  • 前端真的能做到徹底權(quán)限控制嗎?

    摘要:有一天突然想到一個問題,端的權(quán)限控制真的能控制權(quán)限嗎僅僅靠前端,能不能做到真正的權(quán)限控制如果需要后臺配合,應(yīng)該如何配合可能這是一個老生常談的問題,但還是想整理下,有誤的地方望大家指出。 有一天突然想到一個問題,web端的權(quán)限控制:1.真的能控制權(quán)限嗎?2.僅僅靠前端,能不能做到真正的權(quán)限控制?3.如果需要后臺配合,應(yīng)該如何配合?可能這是一個老生常談的問題,但還是想整理下,有誤的地方望大...

    luck 評論0 收藏0
  • Vue中的驗證登錄狀態(tài)

    摘要:用存儲用戶路由守衛(wèi)路由中設(shè)置的字段就在當(dāng)中每次跳轉(zhuǎn)的路徑登錄狀態(tài)下訪問頁面會跳到如果沒有訪問任何頁面。一個簡單的保存登錄狀態(tài)的小。 Vue項目中實現(xiàn)用戶登錄及token驗證 先說一下我的實現(xiàn)步驟: 使用easy-mock新建登錄接口,模擬用戶數(shù)據(jù) 使用axios請求登錄接口,匹配賬號和密碼 賬號密碼驗證后, 拿到token,將token存儲到sessionStorage中,并跳轉(zhuǎn)到首...

    draveness 評論0 收藏0
  • iview admin動態(tài)路由、權(quán)限控制個人見解

    摘要:目前是沒有給我處理好權(quán)限這塊的邏輯。我們的項目正常是路由是在本地配置好的一個路由文件,所以,要想實現(xiàn)動態(tài)的路由,我們就必須讓實現(xiàn)動態(tài)生成。具體頁面上的按鈕權(quán)限的分配在前端頁面是怎么控制的,完全可以去里借鑒。 iview admin目前是沒有給我處理好權(quán)限這塊的邏輯。所以,權(quán)限這塊還是得我們自己去擼。(臉上笑嘻嘻、心里mmp!) 思路做權(quán)限,說到底就是為了讓不同權(quán)限的用戶, 可以訪問不...

    LeanCloud 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<