update 进入登录页时验证缓存token是否有效

This commit is contained in:
zk
2024-05-21 16:06:02 +08:00
parent 510f34953f
commit f3f100cd18
3 changed files with 57 additions and 4 deletions
+3
View File
@@ -39,3 +39,6 @@ export enum CacheTypeEnum {
SESSION,
LOCAL,
}
// 退出时当前页面路径
export const LOGOUT_CURRENT_PATH = 'LOGOUT_CURRENT_PATH';
+25 -1
View File
@@ -1,9 +1,12 @@
import { LOGOUT_CURRENT_PATH } from '/@/enum/cacheEnum.ts';
export enum PageEnum {
// basic login path
BASE_LOGIN = '/login', //西安登录页
BASE_HOME = '/home', //西安首页
BASE_LOGIN_YINCHUAN = '/screenLogin', //银川登录页
YINCHUAN_HOME = '/yinChuanHome', //银川首页
//other
}
export function setBaseLogin(baseLogin) {
@@ -16,7 +19,6 @@ export function getBaseLogin() {
//根据当前路径跳转登录页
export function toLoginByNowPath(nowPath: string) {
console.log('nowPath', nowPath);
//西安的页面路径
const xianPath = ['/home', '/secondScreen', '/'];
//银川的页面路径
@@ -27,3 +29,25 @@ export function toLoginByNowPath(nowPath: string) {
return PageEnum.BASE_LOGIN_YINCHUAN;
}
}
//根据退出时的页面路径跳转首页
export function toHomeByLogoutPath(nowPath: string) {
//西安的页面路径
const xianPath = ['/home', '/secondScreen', '/'];
//银川的页面路径
const yinchuanPath = ['/yinChuanHome'];
if (xianPath.includes(nowPath)) {
return PageEnum.BASE_HOME;
} else if (yinchuanPath.includes(nowPath)) {
return PageEnum.YINCHUAN_HOME;
}
}
//缓存退出时的页面路径
export function setCurrentPath(nowPath) {
localStorage.setItem(LOGOUT_CURRENT_PATH, nowPath);
}
export function getCurrentPath() {
return localStorage.getItem(LOGOUT_CURRENT_PATH);
}
+29 -3
View File
@@ -91,7 +91,7 @@
</div>
</template>
<script lang="ts" name="login-mini" setup>
import { getCodeInfo } from '/@/api/user';
import { getCodeInfo, getUserInfo } from '/@/api/user';
import { onMounted, reactive, ref, toRaw, watch } from 'vue';
import codeImg from '/@/assets/images/checkcode.png';
import { useUserStore } from '/@/store/modules/user';
@@ -101,7 +101,7 @@
import { useRoute, useRouter } from 'vue-router';
import { getAuthCache } from '/@/utils/auth.ts';
import { TOKEN_KEY } from '/@/enum/cacheEnum.ts';
import { PageEnum, setBaseLogin } from '/@/enum/pageEnum.ts';
import { getCurrentPath, PageEnum, setBaseLogin, toHomeByLogoutPath, toLoginByNowPath } from '/@/enum/pageEnum.ts';
const router = useRouter();
const route = useRoute();
@@ -157,6 +157,10 @@
}
);
function toHomeByNowPath() {
return route.path == PageEnum.BASE_LOGIN_YINCHUAN ? PageEnum.YINCHUAN_HOME : PageEnum.BASE_HOME;
}
async function accountLogin() {
if (!formData.username) {
createMessage.warn(t('login.accountPlaceholder'));
@@ -190,7 +194,7 @@
duration: 3,
});
let path = route.path == PageEnum.BASE_LOGIN_YINCHUAN ? PageEnum.YINCHUAN_HOME : PageEnum.BASE_HOME;
let path = toHomeByNowPath();
setBaseLogin(route.path);
router.replace({ path: path });
}
@@ -207,9 +211,31 @@
}
onMounted(() => {
checkToken();
//加载验证码
handleChangeCheckCode();
});
//校验缓存token是否有效
function checkToken() {
const token = getAuthCache(TOKEN_KEY);
if (!token) {
return;
}
const logoutPath = getCurrentPath(); //退出时路径
let path = toHomeByNowPath();
getUserInfo().then(({ code }) => {
if (code == 200) {
if (logoutPath) {
const hasLogoutPath = toHomeByLogoutPath(logoutPath);
router.push({ path: hasLogoutPath });
} else {
router.push({ path: path });
}
}
});
}
</script>
<style lang="less" scoped>