From 8c1f0a7d1aabbb2c96c2114b75b8fd96afebc562 Mon Sep 17 00:00:00 2001 From: chenss <2490758406@qq.com> Date: Mon, 27 Jul 2020 10:52:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=99=88=E5=A7=97=E5=A7=97=E7=9A=84?= =?UTF-8?q?=E6=9D=83=E9=99=90=E7=B3=BB=E7=BB=9F=E4=BC=AA=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gitignore" | 5 ++ .../permission.js" | 64 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 "\351\231\210\345\247\227\345\247\227/.gitignore" create mode 100644 "\351\231\210\345\247\227\345\247\227/permission.js" diff --git "a/\351\231\210\345\247\227\345\247\227/.gitignore" "b/\351\231\210\345\247\227\345\247\227/.gitignore" new file mode 100644 index 0000000..0511e2b --- /dev/null +++ "b/\351\231\210\345\247\227\345\247\227/.gitignore" @@ -0,0 +1,5 @@ +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json diff --git "a/\351\231\210\345\247\227\345\247\227/permission.js" "b/\351\231\210\345\247\227\345\247\227/permission.js" new file mode 100644 index 0000000..98682a0 --- /dev/null +++ "b/\351\231\210\345\247\227\345\247\227/permission.js" @@ -0,0 +1,64 @@ +import router from './router' +import store from './store' +//import { Message } from 'element-ui' +import NProgress from 'nprogress' // progress bar +import 'nprogress/nprogress.css' // progress bar style +import { getToken } from '@/utils/auth' // get token from cookie +import getPageTitle from '@/utils/get-page-title' +// import user from 'mock/user' +// import { login } from './api/user' +import {canTurnTo} from '@/utils/access' + +NProgress.configure({ showSpinner: false }) // NProgress Configuration + +const trunTo=(to,access,next)=>{ + var can=canTurnTo(to.name,access,router.options.routes) + if(can) next()//拥有权限,可以访问 + else next({replace:true,name:'error_401'})//没有权限,变到401页面 +} + +router.beforeEach(async(to,from,next)=>{ + NProgress.start() + + //设置网页的标题 + document.title=getPageTitle(to.meta.title) + + //判断用户是否登录,登录后是否有用户信息,有了用户信息之后是否有权限访问要跳转的路由 + const hasToken=getToken()//var hasLogin=获取token + if(hasToken){ + if(to.path === '/login'){ + next({path:'/'}) + NProgress.done + }else{ + var userInfo=store.state.user.name + if(userInfo){ + trunTo(to,store.state.user.access, next) + }else{ + console.log('登录成功,已经有token,但是还没有用户信息,准备获取用户信息') + store.dispatch('user/getInfo').then(user => { + //获取用户信息,通过用户权限何跳转的页面的name来判断是否有权限访问; + //access必须是一个数组,如:['super_admin']['super_admin','admin'] + trunTo(to,user.access, next) + }).catch(() => { + //获取用户信息失败,重置token + store.dispatch('user/resetToken') + next('/login')//access_token key value + }) + } + } + }else{ + //没有登录(因为没有token) + if(to.path === '/login'){ + next() + }else{ + next('/login') + NProgress.done() + } + } +}) + +router.afterEach(()=>{ + NProgress.done +}) + + -- Gitee From e1fd1810eced83c1ff9d853549db9642d16e6168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=A7=97=E5=A7=97?= <2490758406@qq.com> Date: Mon, 27 Jul 2020 11:24:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E9=99=88=E5=A7=97=E5=A7=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gitignore" | 5 -- .../permission.js" | 64 ------------------- 2 files changed, 69 deletions(-) delete mode 100644 "\351\231\210\345\247\227\345\247\227/.gitignore" delete mode 100644 "\351\231\210\345\247\227\345\247\227/permission.js" diff --git "a/\351\231\210\345\247\227\345\247\227/.gitignore" "b/\351\231\210\345\247\227\345\247\227/.gitignore" deleted file mode 100644 index 0511e2b..0000000 --- "a/\351\231\210\345\247\227\345\247\227/.gitignore" +++ /dev/null @@ -1,5 +0,0 @@ -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json diff --git "a/\351\231\210\345\247\227\345\247\227/permission.js" "b/\351\231\210\345\247\227\345\247\227/permission.js" deleted file mode 100644 index 98682a0..0000000 --- "a/\351\231\210\345\247\227\345\247\227/permission.js" +++ /dev/null @@ -1,64 +0,0 @@ -import router from './router' -import store from './store' -//import { Message } from 'element-ui' -import NProgress from 'nprogress' // progress bar -import 'nprogress/nprogress.css' // progress bar style -import { getToken } from '@/utils/auth' // get token from cookie -import getPageTitle from '@/utils/get-page-title' -// import user from 'mock/user' -// import { login } from './api/user' -import {canTurnTo} from '@/utils/access' - -NProgress.configure({ showSpinner: false }) // NProgress Configuration - -const trunTo=(to,access,next)=>{ - var can=canTurnTo(to.name,access,router.options.routes) - if(can) next()//拥有权限,可以访问 - else next({replace:true,name:'error_401'})//没有权限,变到401页面 -} - -router.beforeEach(async(to,from,next)=>{ - NProgress.start() - - //设置网页的标题 - document.title=getPageTitle(to.meta.title) - - //判断用户是否登录,登录后是否有用户信息,有了用户信息之后是否有权限访问要跳转的路由 - const hasToken=getToken()//var hasLogin=获取token - if(hasToken){ - if(to.path === '/login'){ - next({path:'/'}) - NProgress.done - }else{ - var userInfo=store.state.user.name - if(userInfo){ - trunTo(to,store.state.user.access, next) - }else{ - console.log('登录成功,已经有token,但是还没有用户信息,准备获取用户信息') - store.dispatch('user/getInfo').then(user => { - //获取用户信息,通过用户权限何跳转的页面的name来判断是否有权限访问; - //access必须是一个数组,如:['super_admin']['super_admin','admin'] - trunTo(to,user.access, next) - }).catch(() => { - //获取用户信息失败,重置token - store.dispatch('user/resetToken') - next('/login')//access_token key value - }) - } - } - }else{ - //没有登录(因为没有token) - if(to.path === '/login'){ - next() - }else{ - next('/login') - NProgress.done() - } - } -}) - -router.afterEach(()=>{ - NProgress.done -}) - - -- Gitee