fix: 登录对接
This commit is contained in:
parent
6470ca86db
commit
3d0aebb025
@ -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": {
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
window.config = {
|
||||
wxAuthUrl: "",
|
||||
webAuthUrl: "",
|
||||
loginUrl: "https://web.ceniu.sztg.com/#/login",
|
||||
VConsole: true,
|
||||
userIdList: [],
|
||||
shareEnv: "production",
|
||||
|
||||
@ -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,34 +185,34 @@ 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}`
|
||||
}redirectToken=${to.query.token}&redirectRefreshToken=${
|
||||
to.query.refreshToken
|
||||
}`
|
||||
);
|
||||
} else {
|
||||
next({
|
||||
path: "/login",
|
||||
query: {
|
||||
redirect: to.fullPath,
|
||||
},
|
||||
} 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 {
|
||||
if (to.path === "/login" && store.state.token) {
|
||||
next("/");
|
||||
userLogin();
|
||||
}
|
||||
} else if (!store.state.token && !to.meta.noLogin) {
|
||||
userLogin();
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
||||
@ -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: {},
|
||||
});
|
||||
|
||||
@ -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)}`;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user