diff --git a/package.json b/package.json index b62c0e7..5f7cbd0 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build && sh ./build/deploy.sh", + "build:pro": "vue-cli-service build && sh ./build/deploy_prod.sh", "lint": "vue-cli-service lint" }, "dependencies": { diff --git a/public/static/js/config.js b/public/static/js/config.js index a762d41..523bdf7 100644 --- a/public/static/js/config.js +++ b/public/static/js/config.js @@ -1,6 +1,5 @@ window.config = { - wxAuthUrl: "", - webAuthUrl: "", + loginUrl: "https://web.ceniu.sztg.com/#/login", VConsole: true, userIdList: [], shareEnv: "production", diff --git a/src/router/index.js b/src/router/index.js index 80ae0d9..9eb0e2e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,5 +1,6 @@ import { createRouter, createWebHistory } from "vue-router"; import store from "@/store"; +import { userLogin } from "@/utils/login"; const routes = [ { @@ -126,16 +127,16 @@ const routes = [ component: () => import(/* webpackChunkName: "about" */ "../views/CourseDetail/page.vue"), }, - { - path: "/login", - name: "login", - component: () => - import(/* webpackChunkName: "about" */ "../views/Login/index.vue"), - meta: { - title: "登录", - noLogin: true, // 不需要登录 - }, - }, + // { + // path: "/login", + // name: "login", + // component: () => + // import(/* webpackChunkName: "about" */ "../views/Login/index.vue"), + // meta: { + // title: "登录", + // noLogin: true, // 不需要登录 + // }, + // }, { path: "/shotVideoPlay", name: "shotVideoPlay", @@ -184,33 +185,33 @@ const router = createRouter({ }); router.beforeEach(async (to, from, next) => { - if ( - (to.path !== "/login" && to.meta.noLogin) || - (to.path === "/page" && to.query.preview) - ) { + if (to.meta.noLogin || (to.path === "/page" && to.query.preview)) { return next(); } - if (!store.state.token && !to.meta.noLogin) { - if (to.query.refreshToken) { - location.replace( - `${to.query.redirect}${ - to.query.redirect.includes("?") ? "&" : "?" - }token=${to.query.token}&refreshToken=${to.query.refreshToken}` - ); + if (to.query.refreshToken) { + location.replace( + `${to.query.redirect}${ + to.query.redirect.includes("?") ? "&" : "?" + }redirectToken=${to.query.token}&redirectRefreshToken=${ + to.query.refreshToken + }` + ); + } else if (to.query.redirectRefreshToken) { + let ret = await store.dispatch("Login", { + token: to.query.redirectToken, + refreshToken: to.query.redirectRefreshToken, + }); + if (ret && ret.code === 0) { + delete to.query.redirectToken; + delete to.query.redirectRefreshToken; + return next({ path: to.path, query: to.query, replace: true }); } else { - next({ - path: "/login", - query: { - redirect: to.fullPath, - }, - }); + userLogin(); } + } else if (!store.state.token && !to.meta.noLogin) { + userLogin(); } else { - if (to.path === "/login" && store.state.token) { - next("/"); - } else { - next(); - } + next(); } }); diff --git a/src/store/index.js b/src/store/index.js index a7d363f..149dc55 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -2,6 +2,7 @@ import { createStore } from "vuex"; import router from "@/router/index"; import dayjs from "dayjs"; import { terminalType } from "@/utils/index"; +import { getUserInfo } from "@/api/index"; console.log("process.env.NODE_ENV", process.env.NODE_ENV); export default createStore({ @@ -366,6 +367,33 @@ export default createStore({ state.forbidLogin = true; }, }, - actions: {}, + actions: { + // 登录 + Login({ commit }, { token, refreshToken }) { + return new Promise((resolve, reject) => { + getUserInfo({ + token, + refreshToken, + loginType: 2, // 1:账号密码登录 2:token登录 + clientType: 1, + }) + .then((ret) => { + if (ret.code === 0) { + commit("setToken", ret.data.upToken); + commit( + "setUserInfo", + Object.assign({ account: ret.data.userId }, ret.data) + ); + resolve(ret); + } else { + reject(); + } + }) + .catch(() => { + reject(); + }); + }); + }, + }, modules: {}, }); diff --git a/src/utils/login.js b/src/utils/login.js index 0d2aa1d..0ee45b8 100644 --- a/src/utils/login.js +++ b/src/utils/login.js @@ -1,7 +1,7 @@ import store from "../store"; // import { getUserInfo } from "@/api/index"; import { terminalType } from "@/utils/index"; -import router from "@/router/index"; +// import router from "@/router/index"; export async function userLogin() { localStorage.removeItem("token"); @@ -12,21 +12,8 @@ export async function userLogin() { const ua = navigator.userAgent.toLowerCase(); const isWeixin = ua.indexOf("micromessenger") !== -1; console.log(isWeixin, terminalType); - debugger; - console.log("router", router); - if (isWeixin) { - router.push({ - path: "/login", - query: { - redirect: router.currentRoute.value.fullPath, - }, - }); - } else { - router.push({ - path: "/login", - query: { - redirect: router.currentRoute.value.fullPath, - }, - }); - } + // console.log("router", router); + location.href = `${window.config.loginUrl}?needWx=${ + isWeixin ? true : false + }&redirect=${encodeURIComponent(location.href)}`; }