12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import router from "./router";
- import store from "./store";
- import NProgress from "nprogress"; // progress bar
- import "nprogress/nprogress.css"; // progress bar style
-
- NProgress.configure({
- showSpinner: false
- }); // NProgress Configuration
-
- const loginWhiteList = ["/token/verify", "/401", "/404"]; // 登录验证白名单
- const permissionWhiteList = loginWhiteList.concat(["/"]); // 权限验证白名单
-
- router.beforeEach((to, from, next) => {
- // 线上注释
- if (!store.getters.configlist || store.getters.configlist === undefined || store.getters.configlist.length <= 0) {
- store.dispatch('VerifyConfigList', []).then(() => {
- next()
- })
- }
- if (store.getters.permission_routers === undefined) {
- store.dispatch('xt_GenerateRoutes', []).then(() => {
- next()
- })
- } else {
- next()
- }
- return
- // 线上注释
-
- NProgress.start();
- // console.log(store.getters.current_role_urls.indexOf(to.path))
- // alert('path:' + to.path)
- // 如果 url 带有 lt (login_token)参数,则跳转到验证 token 时等待的页面
- if (to.query.lt != null && to.query.lt.length > 0) {
- // alert('will go to verify token: ' + to.query.lt)
- next({
- path: "/token/verify",
- query: {
- token: to.query.lt
- }
- });
-
- // 否则 如果没有 user 信息,则前往 sso 登录
- } else if (store.getters.xt_user.user.id === 0) {
- if (loginWhiteList.indexOf(to.path) !== -1) {
- // alert('登录白名单内,跳过登录')
- next();
- } else {
- // alert('前往登录')
- window.location.href = process.env.BASE_API + "/login"; // sso 地址
- }
-
- // 否则 如果当前 url 不需要验证访问权限,则通过
- } else if (permissionWhiteList.indexOf(to.path) !== -1) {
- // alert('权限验证白名单内,直接进入')
- next();
-
- // 否则 如果拥有当前 url 的权限,则通过
- // } else if (store.getters.current_role_urls.indexOf(to.path) !== -1) {
- // // alert('权限验证通过')
- // next()
-
- // 否则 跳转401 (未经授权)
- } else {
- // console.log(store.getters.current_role_urls)
- // console.log(store.getters.current_role_urls.indexOf(to.path))
- // alert('401')
- next();
- // next({ path: '/404' })
- }
- });
-
- router.afterEach(() => {
- NProgress.done();
- });
|