/** * 认证工具 - Token 和用户信息管理 */ import config from '@/api/config.js' import { getStorage, setStorage, removeStorage } from './storage' /** * 获取 Token * @returns {string|null} */ export function getToken() { return getStorage(config.tokenKey) } /** * 设置 Token * @param {string} token */ export function setToken(token) { setStorage(config.tokenKey, token) } /** * 移除 Token */ export function removeToken() { removeStorage(config.tokenKey) } /** * 判断是否已登录 * @returns {boolean} */ export function isLoggedIn() { return !!getToken() } /** * 获取用户信息 * @returns {Object|null} */ export function getUserInfo() { return getStorage(config.userInfoKey) } /** * 设置用户信息 * @param {Object} userInfo */ export function setUserInfo(userInfo) { setStorage(config.userInfoKey, userInfo) } /** * 清除所有认证信息 */ export function clearAuthInfo() { removeToken() removeStorage(config.userInfoKey) } /** * 登录检查,未登录则跳转登录页 * @param {string} [redirectUrl] 登录后重定向地址 * @returns {boolean} 是否已登录 */ export function checkLogin(redirectUrl) { if (isLoggedIn()) { return true } const url = redirectUrl ? `/pages/login/login?redirect=${encodeURIComponent(redirectUrl)}` : '/pages/login/login' uni.navigateTo({ url }) return false }