vue实现网站前台的权限管理
本文主要介绍了基于vue实现网站前台的权限管理(前后端分离实践),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。
Javascript做为当下的热门语言,用途很广泛,从前端到后端处处可见其存在,该技术如今在我们项目内部也大量使用来开发诸如CMS系统以及其他其他一些数据分析系统的前端页面,为此个人非常感兴趣并将其作为帽子卡的扩展内容来进行课余学习。
Javascript框架鳞次栉比,但基本原理大致相同,因此选用国内人开发的vue.js进行一个初步的尝试。学习vue.js也一周多的时间了,说起vue的主要用法,无外乎Declarative Rendering、Component System、Client-side Routing、Vue-resource、Axios以及视项目大小而决定是否使用的Vuex,学习vue事小,主要转变思维,面向前后端分离的组件式web开发才是真正想去实践的。
正好我的个人网站CodeSheep最近要开发后台管理,因此正好用vue这一套来实现了一下。说到后台管理,绕不开的问题就是权限的管理。既然想实践前后端分离这种思想,因此后台管理的所有web前端的东西应该独立由前端完成,这其中就包括很重要的由前端来根据权限进行相关东西的控制。我们想要做到的是:不同的权限对应着不同的路由,同时页面侧边栏也应该根据不同的权限,来异步生成对应的菜单,讲白了就是后台管理时不同权限的用户其看到的界面菜单是不一样的,因此有了这里实现登录和权限验证的一套流程。
具体实现
1、点击“登录”按钮触发登录事件
this.$store.dispatch('LoginByEmail', this.loginForm).then(() => { this.$router.push({ path: '/' }); //登录成功之后重定向到首页 }).catch(err => { this.$message.error(err); //登录失败提示错误 });
其中异步触发的actions LoginByEmail的处理内容如下:
LoginByEmail ({ commit }, userInfo) { const email = userInfo.email.trim() return new Promise((resolve, reject) => { loginByEmail(email, userInfo.password).then(response => { const data = response.data setToken(response.data.token) commit('SET_TOKEN', data.token) resolve() }).catch(error => { reject(error) }) }) }
很容易看出想做的是将从服务器端拿到的token(唯一标示用户身份)放到浏览器本地Cookie中去
2、全局钩子router.beforeEach中拦截路由
这一步是核心,具体处理流程示意如下:
路由拦截处理流程
具体代码如下:
router.beforeEach((to, from, next) => { if (getToken()) { // 判断是否取到token if (to.path === '/login') { next({ path: '/' }) } else { if (store.getters.roles.length === 0) { // 判断当前用户是否已获取完user_info信息 store.dispatch('GetInfo').then(res => { // 获取user_info const roles = res.data.role store.dispatch('GenerateRoutes', { roles }).then(() => { // 生成可访问的路由表 router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表 next({ ...to }) // 放行路由 }) }).catch(() => { store.dispatch('FedLogOut').then(() => { next({ path: '/login' }) }) }) } else { next() // 放行该路由 } } } else { if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单里的路径,继续让其访问 next() } else { // 其他不在白名单里的路径全部让其重定向到登录页面! next('/login') alert('not in white list, now go to the login page') } } })
流程图中几个重要步骤解释一下:
判断前端是否取到了token令牌:getToken()
操作很简单,主要是从Cookie中获取,看token是不是已经拿到了:
export function getToken () { return Cookies.get(TokenKey) }
vuex异步操作store.dispatch('GetInfo'):获取用户信息
GetInfo ({ commit, state }) { return new Promise((resolve, reject) => { getInfo(state.token).then(response => { const data = response.data console.log(data) commit('SET_ROLES', data.role) commit('SET_NAME', data.name) resolve(response) }).catch(error => { reject(error) }) }) }
操作也很简单,用一个get的restful api从服务器获取用户的角色和名字
vuex异步操作store.dispatch('GenerateRoutes', { roles }):根据不同的roles来生成不同的前台路由
GenerateRoutes ({ commit }, data) { return new Promise(resolve => { const { roles } = data let accessedRouters if (roles.indexOf('admin') >= 0) { accessedRouters = asyncRouter } else { accessedRouters = filterAsyncRouter(asyncRouter, roles) } commit('SET_ROUTERS', accessedRouters) resolve() }) }
从代码中可以看出,我这是只区分了管理员角色admin和其他普通用户(即非Aadmin两种权限)
该系列的实践后续还将尝试更多,将会一一撰帖成文,我也是个初学者,路漫漫而求索之。。。
相关推荐:
Atas ialah kandungan terperinci vue实现网站前台的权限管理. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Ia membolehkan pengguna melakukan operasi yang lebih mendalam dan penyesuaian sistem kebenaran Root ialah kebenaran pentadbir dalam sistem Android. Mendapatkan keistimewaan root biasanya memerlukan satu siri langkah yang membosankan, yang mungkin tidak mesra pengguna biasa, bagaimanapun. Dengan mendayakan kebenaran root dengan satu klik, artikel ini akan memperkenalkan kaedah yang mudah dan berkesan untuk membantu pengguna mendapatkan kebenaran sistem dengan mudah. Fahami kepentingan dan risiko kebenaran root dan mempunyai kebebasan yang lebih besar keizinan Root membolehkan pengguna mengawal sepenuhnya sistem telefon mudah alih. Kuatkan kawalan keselamatan, sesuaikan tema dan pengguna boleh memadamkan aplikasi yang diprapasang. Sebagai contoh, pemadaman fail sistem secara tidak sengaja menyebabkan ranap sistem, penggunaan keistimewaan akar yang berlebihan dan pemasangan perisian hasad secara tidak sengaja juga berisiko, walau bagaimanapun. Sebelum menggunakan keistimewaan root

Cara menggunakan Redis untuk melaksanakan pengurusan transaksi teragih Pengenalan: Dengan perkembangan pesat Internet, penggunaan sistem teragih menjadi semakin meluas. Dalam sistem teragih, pengurusan urus niaga merupakan cabaran penting. Kaedah pengurusan transaksi tradisional sukar dilaksanakan dalam sistem teragih dan tidak cekap. Menggunakan ciri-ciri Redis, kami boleh melaksanakan pengurusan transaksi teragih dengan mudah dan meningkatkan prestasi dan kebolehpercayaan sistem. 1. Pengenalan kepada Redis Redis ialah sistem storan data berasaskan memori dengan prestasi baca dan tulis yang cekap serta data kaya.

Bagaimana untuk menetapkan akses kebenaran dalam ruang QQ? Anda boleh menetapkan akses kebenaran dalam ruang QQ, tetapi kebanyakan rakan tidak tahu bagaimana untuk menetapkan akses kebenaran dalam ruang QQ Seterusnya ialah rajah cara menetapkan akses kebenaran dalam ruang QQ yang dibawa oleh editor untuk pengguna Teks tutorial, pengguna yang berminat datang dan lihat! Tutorial penggunaan QQ Bagaimana untuk menetapkan kebenaran untuk ruang QQ 1. Mula-mula buka aplikasi QQ, klik [Avatar] di sudut kiri atas halaman utama 2. Kemudian kembangkan kawasan maklumat peribadi di sebelah kiri dan klik fungsi [Tetapan]. di sudut kiri bawah; 3. Masukkan halaman tetapan Leret untuk mencari pilihan [Privasi] 4. Seterusnya dalam antara muka privasi, pilih perkhidmatan [Tetapan Kebenaran] 5. Kemudian cabar ke halaman terkini dan pilih [Space Dynamics ]; 6. Tetapkan dalam QQ Space sekali lagi

Pengurusan kebenaran forum Discuz: Baca panduan tetapan kebenaran Dalam pengurusan forum Discuz, tetapan kebenaran adalah bahagian yang penting. Antaranya, penetapan kebenaran membaca amat penting, kerana ia menentukan skop kandungan yang boleh dilihat oleh pengguna yang berbeza dalam forum. Artikel ini akan memperkenalkan secara terperinci tetapan kebenaran membaca forum Discuz dan cara mengkonfigurasinya secara fleksibel untuk keperluan yang berbeza. 1. Konsep asas kebenaran membaca Dalam forum Discuz, kebenaran membaca terutamanya termasuk konsep berikut yang perlu difahami: Keizinan membaca lalai: Lalai selepas pendaftaran pengguna baharu

Artikel ini akan membawa anda memahami intipati TI dan meneroka lebih lanjut cara mendapatkan kebenaran TI dengan bantuan modul powershell dan NtObjectManager untuk menyelesaikan sebarang operasi yang anda inginkan dalam sistem pengendalian. Jika anda pernah mentadbir sistem Windows, anda harus biasa dengan konsep kumpulan trustedInstaller (TI). Kumpulan TI mempunyai kebenaran penting dalam pengendalian fail sistem dan pendaftaran. Contohnya, anda boleh melihat sifat fail di bawah folder System32 Dalam pilihan keselamatan, kumpulan TI dan pemilik fail mempunyai kebenaran untuk memadam dan mengubah suai fail Malah pentadbir tidak boleh mengubah suai pilihan keselamatan. Oleh itu, untuk pengendalian fail sistem dan pendaftaran, adalah perlu untuk

Apabila kami menggunakan sistem win10, apabila kami menggunakan tetikus untuk mengklik kanan desktop atau menu klik kanan, kami mendapati bahawa menu tidak boleh dibuka, dan kami tidak boleh menggunakan komputer seperti biasa Pada masa ini, kami perlu memulihkan sistem untuk menyelesaikan masalah. Pengurusan menu klik kanan Win10 tidak boleh dibuka: 1. Mula-mula buka panel kawalan kami, dan kemudian klik. 2. Kemudian klik di bawah Keselamatan dan Penyelenggaraan. 3. Klik di sebelah kanan untuk memulihkan sistem. 4. Jika ia masih tidak boleh digunakan, periksa sama ada terdapat masalah dengan tetikus itu sendiri. 5. Jika anda pasti tiada masalah dengan tetikus, tekan + dan masukkan. 6. Selepas pelaksanaan selesai, mulakan semula komputer.

Bagaimana untuk menetapkan kebenaran baca sahaja folder kongsi dalam Win10? Selepas hos berkongsi folder, sesetengah pengguna hanya mahu orang lain mengakses, membaca dan melihat fail, tetapi tidak mahu orang lain mengubah suai fail pada hos. Artikel ini ialah tutorial tentang cara menetapkan kebenaran folder kongsi kepada baca sahaja dan tidak boleh diubah suai. 1. Mula-mula, kongsi folder mengikut proses biasa Pada hos, klik kanan folder yang perlu dikongsi, dan pilih: Properties-Sharing-Advanced Sharing-Check Share this folder; pilihan kebenaran di bawah secara lalai, jika tidak ada, tambahkan akaun Semua orang 3. Hanya semak kebenaran baca di bawah, dan kemudian klik OK 4. Cari folder properties-security dan tambahkan Ever

Bagaimana untuk membahagikan pengurusan cakera Dengan perkembangan teknologi komputer yang berterusan, pengurusan cakera telah menjadi bahagian yang sangat diperlukan dalam penggunaan komputer kita. Sebagai bahagian penting dalam pengurusan cakera, pembahagian cakera boleh membahagikan cakera keras kepada beberapa bahagian, membolehkan kami menyimpan dan mengurus data dengan lebih fleksibel. Jadi, bagaimana untuk membahagikan pengurusan cakera? Di bawah, saya akan memberi anda pengenalan terperinci. Pertama sekali, kita perlu menjelaskan bahawa tidak hanya ada satu cara untuk membahagikan cakera Kita boleh memilih kaedah pembahagian cakera yang sesuai mengikut keperluan dan tujuan yang berbeza. selalunya
