update 进入登录页时验证缓存token是否有效
This commit is contained in:
@@ -39,3 +39,6 @@ export enum CacheTypeEnum {
|
||||
SESSION,
|
||||
LOCAL,
|
||||
}
|
||||
|
||||
// 退出时当前页面路径
|
||||
export const LOGOUT_CURRENT_PATH = 'LOGOUT_CURRENT_PATH';
|
||||
|
||||
+25
-1
@@ -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
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user