fix: 登录对接

This commit is contained in:
kaizheng(郑凯) 2025-02-25 22:55:31 +08:00
parent 6470ca86db
commit 3d0aebb025
5 changed files with 69 additions and 53 deletions

View File

@ -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": {

View File

@ -1,6 +1,5 @@
window.config = {
wxAuthUrl: "",
webAuthUrl: "",
loginUrl: "https://web.ceniu.sztg.com/#/login",
VConsole: true,
userIdList: [],
shareEnv: "production",

View File

@ -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();
}
});

View File

@ -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账号密码登录 2token登录
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: {},
});

View File

@ -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)}`;
}