|
|
@@ -104,20 +104,29 @@ router.beforeEach((to, from, next) => {
|
|
|
try {
|
|
|
//先判断企微环境
|
|
|
checkWxWorkEnvAndUserCache();
|
|
|
- //验证时间戳和token
|
|
|
- initGuidInfo();
|
|
|
- const isLoggedIn = checkLoginStatus();
|
|
|
- if (isLoggedIn) {
|
|
|
- next();
|
|
|
- return;
|
|
|
- }
|
|
|
// 获取并处理 loginType,区分登录方式
|
|
|
- const { loginType, wxid } = to.query;
|
|
|
+ const { loginType, wxid, WecomType } = to.query;
|
|
|
const isNewLoginMode = loginType && String(loginType) === '2';
|
|
|
- if (isNewLoginMode) {
|
|
|
+ // 保证本次会话的登录方式不变
|
|
|
+ if(isNewLoginMode){
|
|
|
+ sessionStorage.setItem("isNewLoginMode",String(isNewLoginMode));
|
|
|
+ }
|
|
|
+ if (sessionStorage.getItem("isNewLoginMode") === 'true') {
|
|
|
+ window.localStorage.setItem('loginMode', 'wxidLogin');
|
|
|
+ if (WecomType) {
|
|
|
+ window.localStorage.setItem('agentFrom', getAgentFrom(WecomType));
|
|
|
+ window.localStorage.setItem('agentFromAI', getAgentFrom(WecomType));
|
|
|
+ }
|
|
|
+ //验证时间戳和token
|
|
|
+ initGuidInfo();
|
|
|
+ const isLoggedIn = checkLoginStatus();
|
|
|
+ if (isLoggedIn) {
|
|
|
+ // debugger
|
|
|
+ next();
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (wxid) {
|
|
|
// 新登录方式:loginType存在且等于2
|
|
|
- sessionStorage.setItem('loginMode', 'wxidLogin');
|
|
|
console.log('-----当前为【新登录方式】,执行强制登录校验');
|
|
|
handleNewLoginMode(to, next, wxid);
|
|
|
} else {
|
|
|
@@ -125,8 +134,20 @@ router.beforeEach((to, from, next) => {
|
|
|
next({ path: "/error" });
|
|
|
}
|
|
|
} else {
|
|
|
+ const org_loginMode = window.localStorage.getItem('loginMode');
|
|
|
+ if (org_loginMode != 'codeLogin') {
|
|
|
+ window.localStorage.clear();
|
|
|
+ }
|
|
|
// 旧登录方式:无loginType / loginType≠2
|
|
|
- sessionStorage.setItem('loginMode', 'codeLogin');
|
|
|
+ window.localStorage.setItem('loginMode', 'codeLogin');
|
|
|
+ //验证时间戳和token
|
|
|
+ initGuidInfo();
|
|
|
+ const isLoggedIn = checkLoginStatus();
|
|
|
+ if (isLoggedIn) {
|
|
|
+ // debugger
|
|
|
+ next();
|
|
|
+ return;
|
|
|
+ }
|
|
|
console.log('🔑 当前为【旧登录方式】,执行原有企微登录逻辑');
|
|
|
handleOldWecomLoginMode(to, next);
|
|
|
}
|
|
|
@@ -160,10 +181,8 @@ function handleNewLoginMode(to, next, wxId) {
|
|
|
console.log("res=", res)
|
|
|
window.localStorage.setItem('AIToken', res.Data.token);
|
|
|
window.localStorage.setItem('isRefreshProvider', res.Data.isRefreshProvider);
|
|
|
- const { WecomType } = to.query;
|
|
|
- window.localStorage.setItem('agentFrom', getAgentFrom(parseInt(WecomType)));
|
|
|
- window.localStorage.setItem('agentFromAI', getAgentFrom(parseInt(WecomType)));
|
|
|
console.log(`新登录成功,Token已缓存,即将进入 ${to.path}`);
|
|
|
+ // debugger
|
|
|
next();
|
|
|
} else {
|
|
|
throw new Error('新登录失败,未获取到Token');
|
|
|
@@ -195,6 +214,7 @@ function handleOldWecomLoginMode(to, next) {
|
|
|
if (finalCode) {
|
|
|
doWecomLogin(finalCode)
|
|
|
.then(() => {
|
|
|
+ // debugger
|
|
|
next();
|
|
|
console.log(`登录成功,即将进入 ${to.path}`);
|
|
|
})
|
|
|
@@ -202,6 +222,7 @@ function handleOldWecomLoginMode(to, next) {
|
|
|
next({ path: "/error" });
|
|
|
});
|
|
|
} else {
|
|
|
+ // debugger
|
|
|
console.log(`访问 ${to.path} 需登录,正在跳转到授权页面`);
|
|
|
getQyCode();
|
|
|
}
|