From a119d54d0bf1cca023d9b100daab2c16d729712c Mon Sep 17 00:00:00 2001 From: hh <2607470919@qq.com> Date: Mon, 27 Jul 2020 09:51:17 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=B0=A2=E6=B5=B7=E6=81=A9=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../permission.js" | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 "\350\260\242\346\265\267\346\201\251/permission.js" diff --git "a/\350\260\242\346\265\267\346\201\251/permission.js" "b/\350\260\242\346\265\267\346\201\251/permission.js" new file mode 100644 index 0000000..bd74b1c --- /dev/null +++ "b/\350\260\242\346\265\267\346\201\251/permission.js" @@ -0,0 +1,62 @@ +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 79a33e0f56a6d3138dde927d9da36eee9c0508ed Mon Sep 17 00:00:00 2001 From: hh <2607470919@qq.com> Date: Mon, 27 Jul 2020 11:19:48 +0800 Subject: [PATCH 2/4] =?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" | 23 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 "\350\260\242\346\265\267\346\201\251/.gitignore" diff --git "a/\350\260\242\346\265\267\346\201\251/.gitignore" "b/\350\260\242\346\265\267\346\201\251/.gitignore" new file mode 100644 index 0000000..0511e2b --- /dev/null +++ "b/\350\260\242\346\265\267\346\201\251/.gitignore" @@ -0,0 +1,5 @@ +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json diff --git "a/\350\260\242\346\265\267\346\201\251/permission.js" "b/\350\260\242\346\265\267\346\201\251/permission.js" index bd74b1c..17386da 100644 --- "a/\350\260\242\346\265\267\346\201\251/permission.js" +++ "b/\350\260\242\346\265\267\346\201\251/permission.js" @@ -57,6 +57,29 @@ router.beforeEach(async(to, from, next) => { } }) +// var hasToken = 获取令牌() + +// if(hasToken){ +// if(登录成功){ +// 前往主页 +// }else{ +// var userInfo = 获取用户名() +// if(userInfo){ +// 前往下一级路由 +// }else{ +// 获取用户信息().then(()=>{ +// 前往下一级路由 +// }).catch(()=>{ +// 刷新令牌信息() +// 回到登录页面 +// }) +// } +// } +// }else{ +// 返回登录页面 +// } + router.afterEach(() => { NProgress.done }) + -- Gitee From 7198dce18d7da072742ec6aa35606913af70e7c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=B5=B7=E6=81=A9?= <2607470919@qq.com> Date: Mon, 27 Jul 2020 11:24:37 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E8=B0=A2=E6=B5=B7=E6=81=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gitignore" | 5 -- .../permission.js" | 85 ------------------- 2 files changed, 90 deletions(-) delete mode 100644 "\350\260\242\346\265\267\346\201\251/.gitignore" delete mode 100644 "\350\260\242\346\265\267\346\201\251/permission.js" diff --git "a/\350\260\242\346\265\267\346\201\251/.gitignore" "b/\350\260\242\346\265\267\346\201\251/.gitignore" deleted file mode 100644 index 0511e2b..0000000 --- "a/\350\260\242\346\265\267\346\201\251/.gitignore" +++ /dev/null @@ -1,5 +0,0 @@ -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json diff --git "a/\350\260\242\346\265\267\346\201\251/permission.js" "b/\350\260\242\346\265\267\346\201\251/permission.js" deleted file mode 100644 index 17386da..0000000 --- "a/\350\260\242\346\265\267\346\201\251/permission.js" +++ /dev/null @@ -1,85 +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() - } - } -}) - -// var hasToken = 获取令牌() - -// if(hasToken){ -// if(登录成功){ -// 前往主页 -// }else{ -// var userInfo = 获取用户名() -// if(userInfo){ -// 前往下一级路由 -// }else{ -// 获取用户信息().then(()=>{ -// 前往下一级路由 -// }).catch(()=>{ -// 刷新令牌信息() -// 回到登录页面 -// }) -// } -// } -// }else{ -// 返回登录页面 -// } - -router.afterEach(() => { - NProgress.done -}) - -- Gitee From 5a2ed85a29399a55eaa0be612908fd9136f83509 Mon Sep 17 00:00:00 2001 From: hh <2607470919@qq.com> Date: Mon, 27 Jul 2020 11:26:58 +0800 Subject: [PATCH 4/4] =?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" | 85 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 "\350\260\242\346\265\267\346\201\251/.gitignore" create mode 100644 "\350\260\242\346\265\267\346\201\251/permission.js" diff --git "a/\350\260\242\346\265\267\346\201\251/.gitignore" "b/\350\260\242\346\265\267\346\201\251/.gitignore" new file mode 100644 index 0000000..0511e2b --- /dev/null +++ "b/\350\260\242\346\265\267\346\201\251/.gitignore" @@ -0,0 +1,5 @@ +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json diff --git "a/\350\260\242\346\265\267\346\201\251/permission.js" "b/\350\260\242\346\265\267\346\201\251/permission.js" new file mode 100644 index 0000000..17386da --- /dev/null +++ "b/\350\260\242\346\265\267\346\201\251/permission.js" @@ -0,0 +1,85 @@ +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() + } + } +}) + +// var hasToken = 获取令牌() + +// if(hasToken){ +// if(登录成功){ +// 前往主页 +// }else{ +// var userInfo = 获取用户名() +// if(userInfo){ +// 前往下一级路由 +// }else{ +// 获取用户信息().then(()=>{ +// 前往下一级路由 +// }).catch(()=>{ +// 刷新令牌信息() +// 回到登录页面 +// }) +// } +// } +// }else{ +// 返回登录页面 +// } + +router.afterEach(() => { + NProgress.done +}) + -- Gitee