|
@@ -7,99 +7,99 @@ import { getToken, removeToken } from "@/utils/auth"; // get token from cookie
|
|
|
import Cookies from "js-cookie";
|
|
|
import getPageTitle from "@/utils/get-page-title";
|
|
|
// 1为单点登录,0其他不是
|
|
|
-Cookies.set("sso", 1);
|
|
|
+Cookies.set("sso", 0);
|
|
|
NProgress.configure({ showSpinner: false }); // NProgress Configuration
|
|
|
|
|
|
const whiteList = ["/login"]; // no redirect whitelist
|
|
|
|
|
|
-router.beforeEach(async (to, from, next) => {
|
|
|
- // start progress bar
|
|
|
- NProgress.start();
|
|
|
+router.beforeEach(async(to, from, next) => {
|
|
|
+ // start progress bar
|
|
|
+ NProgress.start();
|
|
|
|
|
|
- // set page title
|
|
|
- document.title = getPageTitle(to.meta.title);
|
|
|
+ // set page title
|
|
|
+ document.title = getPageTitle(to.meta.title);
|
|
|
|
|
|
- // determine whether the user has logged in
|
|
|
- const hasToken = getToken();
|
|
|
+ // determine whether the user has logged in
|
|
|
+ const hasToken = getToken();
|
|
|
|
|
|
- console.log("hasToken==>", hasToken);
|
|
|
- if (hasToken) {
|
|
|
- if (to.path === "/login") {
|
|
|
- // if is logged in, redirect to the home page
|
|
|
- next({ path: "/" });
|
|
|
- NProgress.done();
|
|
|
- } else {
|
|
|
- // determine whether the user has obtained his permission roles through getInfo
|
|
|
- const hasRoles = store.getters.roles && store.getters.roles.length > 0;
|
|
|
- if (hasRoles) {
|
|
|
- // console.log('%c 不用获取,直接进入页面', 'color:#4EA35F')
|
|
|
- next();
|
|
|
- } else {
|
|
|
- try {
|
|
|
- // get user info
|
|
|
- // note: roles must be a object array! such as: ['admin'] or ,['developer','editor']
|
|
|
- // console.log('%c 开始请求用户信息', 'color:#4EA35F')
|
|
|
- const { roles } = await store.dispatch("user/getInfo");
|
|
|
+ console.log("hasToken==>", hasToken);
|
|
|
+ if (hasToken) {
|
|
|
+ if (to.path === "/login") {
|
|
|
+ // if is logged in, redirect to the home page
|
|
|
+ next({ path: "/" });
|
|
|
+ NProgress.done();
|
|
|
+ } else {
|
|
|
+ // determine whether the user has obtained his permission roles through getInfo
|
|
|
+ const hasRoles = store.getters.roles && store.getters.roles.length > 0;
|
|
|
+ if (hasRoles) {
|
|
|
+ // console.log('%c 不用获取,直接进入页面', 'color:#4EA35F')
|
|
|
+ next();
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ // get user info
|
|
|
+ // note: roles must be a object array! such as: ['admin'] or ,['developer','editor']
|
|
|
+ // console.log('%c 开始请求用户信息', 'color:#4EA35F')
|
|
|
+ const { roles } = await store.dispatch("user/getInfo");
|
|
|
|
|
|
- // generate accessible routes map based on roles
|
|
|
- const accessRoutes = await store.dispatch(
|
|
|
- "permission/generateRoutes",
|
|
|
- roles
|
|
|
- );
|
|
|
- console.log(accessRoutes, "accessRoutes");
|
|
|
- // dynamically add accessible routes
|
|
|
- router.addRoutes(accessRoutes);
|
|
|
+ // generate accessible routes map based on roles
|
|
|
+ const accessRoutes = await store.dispatch(
|
|
|
+ "permission/generateRoutes",
|
|
|
+ roles
|
|
|
+ );
|
|
|
+ console.log(accessRoutes, "accessRoutes");
|
|
|
+ // dynamically add accessible routes
|
|
|
+ router.addRoutes(accessRoutes);
|
|
|
|
|
|
- // hack method to ensure that addRoutes is complete
|
|
|
- // set the replace: true, so the navigation will not leave a history record
|
|
|
- // console.log('%c 马上载入页面', 'color:skyblue')
|
|
|
- next({ ...to, replace: true });
|
|
|
- } catch (error) {
|
|
|
- // remove token and go to login page to re-login
|
|
|
- await store.dispatch("user/resetToken");
|
|
|
- Message.error(error || "Has Error");
|
|
|
- // next(`/login?redirect=${to.path}`) //跳转到退出前界面
|
|
|
- removeToken();
|
|
|
- next(`/login`);
|
|
|
- NProgress.done();
|
|
|
+ // hack method to ensure that addRoutes is complete
|
|
|
+ // set the replace: true, so the navigation will not leave a history record
|
|
|
+ // console.log('%c 马上载入页面', 'color:skyblue')
|
|
|
+ next({...to, replace: true });
|
|
|
+ } catch (error) {
|
|
|
+ // remove token and go to login page to re-login
|
|
|
+ await store.dispatch("user/resetToken");
|
|
|
+ Message.error(error || "Has Error");
|
|
|
+ // next(`/login?redirect=${to.path}`) //跳转到退出前界面
|
|
|
+ removeToken();
|
|
|
+ next(`/login`);
|
|
|
+ NProgress.done();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- /* has no token*/
|
|
|
-
|
|
|
- if (whiteList.indexOf(to.path) !== -1) {
|
|
|
- // in the free login whitelist, go directly
|
|
|
- next();
|
|
|
} else {
|
|
|
- // other pages that do not have permission to access are redirected to the login page.
|
|
|
+ /* has no token*/
|
|
|
|
|
|
- // next(`/login?redirect=${to.path}`) //跳转到退出前界面
|
|
|
+ if (whiteList.indexOf(to.path) !== -1) {
|
|
|
+ // in the free login whitelist, go directly
|
|
|
+ next();
|
|
|
+ } else {
|
|
|
+ // other pages that do not have permission to access are redirected to the login page.
|
|
|
|
|
|
- next({ path: "/login" });
|
|
|
- NProgress.done();
|
|
|
- if (Cookies.get("sso") == 1) {
|
|
|
- // 单点登录
|
|
|
- // 构建要跳转的URL
|
|
|
- var url = process.env.VUE_APP_BASE_API;
|
|
|
- console.log(url, "url");
|
|
|
- // 获取当前url
|
|
|
- if (url.indexOf("/") == 0 && url.length == 1) {
|
|
|
- url = window.location.protocol + "//" + window.location.host + url;
|
|
|
+ // next(`/login?redirect=${to.path}`) //跳转到退出前界面
|
|
|
+
|
|
|
+ next({ path: "/login" });
|
|
|
+ NProgress.done();
|
|
|
+ if (Cookies.get("sso") == 1) {
|
|
|
+ // 单点登录
|
|
|
+ // 构建要跳转的URL
|
|
|
+ var url = process.env.VUE_APP_BASE_API;
|
|
|
+ console.log(url, "url");
|
|
|
+ // 获取当前url
|
|
|
+ if (url.indexOf("/") == 0 && url.length == 1) {
|
|
|
+ url = window.location.protocol + "//" + window.location.host + url;
|
|
|
+ }
|
|
|
+ const externalURL =
|
|
|
+ "https://id.xiandaimuye.com/api/v1/oauth2/authorize?response_type=code&client_id=fTBm64I4k3kqHYtoFTUpvirCDxxCfx7I&redirect_uri=" +
|
|
|
+ url +
|
|
|
+ "api/v1/oauth2/token";
|
|
|
+ // 使用 $router.push 进行页面跳转
|
|
|
+ // 注意: 这里的跳转是在当前窗口进行的,如果需要在新标签页打开,可以使用 window.open(externalURL)
|
|
|
+ window.open(externalURL, "_self");
|
|
|
+ }
|
|
|
}
|
|
|
- const externalURL =
|
|
|
- "https://id.xiandaimuye.com/api/v1/oauth2/authorize?response_type=code&client_id=fTBm64I4k3kqHYtoFTUpvirCDxxCfx7I&redirect_uri=" +
|
|
|
- url +
|
|
|
- "api/v1/oauth2/token";
|
|
|
- // 使用 $router.push 进行页面跳转
|
|
|
- // 注意: 这里的跳转是在当前窗口进行的,如果需要在新标签页打开,可以使用 window.open(externalURL)
|
|
|
- window.open(externalURL, "_self");
|
|
|
- }
|
|
|
}
|
|
|
- }
|
|
|
});
|
|
|
|
|
|
router.afterEach(() => {
|
|
|
- // finish progress bar
|
|
|
- NProgress.done();
|
|
|
-});
|
|
|
+ // finish progress bar
|
|
|
+ NProgress.done();
|
|
|
+});
|