123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import Router from "vue-router";
- import router from "./index";
- import axios from "axios";
- import store from "../store";
- // 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题
- const originalPush = Router.prototype.push;
- Router.prototype.push = function push(location) {
- return originalPush.call(this, location).catch((err) => err);
- };
- // http://localhost:8082/?code=1&ticket=1
- router.beforeEach(async (to, from, next) => {
- let {
- code,
- ticket
- } = to.query;
- if (code && ticket && to.name === "mainPage") {
- localStorage.clear();
- store.commit("getUserId", "");
- store.commit("getUsername", "");
- store.commit("getRoleCode", "");
- store.commit("getUseType", "");
- let result = await axios({
- method: "post",
- url: "/simulation/oauth/client/sign/single",
- data: {
- code,
- ticket,
- },
- })
- .then((res) => {
- if (res.code == 200 && !!res.info.access_token) {
- localStorage.setItem(
- "Authorization",
- res.info.token_type + " " + res.info.access_token
- );
- localStorage.setItem(
- "refreshToken",
- res.info.refresh_token
- );
- localStorage.setItem("expiresTime", res.info.expires_time);
- return true;
- } else {
- alert(res.message || "网络异常");
- return false;
- }
- })
- .catch((error) => {
- alert("网络异常!");
- return false;
- });
- if (result) {
- next({
- path: "/mainPage",
- // query: {
- // code,
- // ticket,
- // },
- replace: true,
- });
- } else {
- next({
- path: "/login",
- });
- }
- return;
- }
- if (to.fullPath === "/" || to.name === "*") {
- if (to.meta.login) {
- if (localStorage.getItem("Authorization")) {
- next({
- path: "/mainPage",
- });
- } else {
- next({
- path: "/login",
- });
- }
- } else {
- next({
- path: "/mainPage",
- });
- }
- } else {
- if (to.meta.login) {
- if (localStorage.getItem("Authorization")) {
- next();
- } else {
- next({
- path: "/login",
- });
- }
- } else {
- next();
- }
- }
- });
|