import { useAppStore } from "@/stores/app.js"; import Cache from "../utils/cache"; import { Debounce } from "@/utils/validate.js"; import { LOGIN_STATUS, USER_INFO, EXPIRES_TIME, STATE_R_KEY, BACK_URL, } from "@/config/cache"; function prePage() { let pages = getCurrentPages(); let prePage = pages[pages.length - 1]; return prePage.route; } export const toLogin = Debounce(_toLogin, 800); export function _toLogin(push, pathLogin) { const appStore = useAppStore(); appStore.LOGOUT(); let path = prePage(); let login_back_url = Cache.get(BACK_URL); uni.navigateTo({ url: "/pages/users/login/index", }); } export function checkLogin() { let token = Cache.get(LOGIN_STATUS); let expiresTime = Cache.get(EXPIRES_TIME); let newTime = Math.round(new Date() / 1000); const appStore = useAppStore(); // 如果没有token,清除所有登录信息 if (!token) { Cache.clear(LOGIN_STATUS); Cache.clear(EXPIRES_TIME); Cache.clear(USER_INFO); Cache.clear(STATE_R_KEY); return false; } // 如果有过期时间且已过期,清除所有登录信息 if (expiresTime && expiresTime < newTime) { Cache.clear(LOGIN_STATUS); Cache.clear(EXPIRES_TIME); Cache.clear(USER_INFO); Cache.clear(STATE_R_KEY); return false; } // 恢复登录状态 appStore.UPDATE_LOGIN(token); let userInfo = Cache.get(USER_INFO, true); if (userInfo) { appStore.UPDATE_USERINFO(userInfo); } return true; }