/** * 登录状态管理 * Token 本地存储、登录态检查、路由守卫 */ const TOKEN_KEY = 'token' const USER_INFO_KEY = 'userInfo' const ROLE_KEY = 'userRole' // 'user' | 'merchant' /** * 保存登录信息 * @param {string} token - JWT Token * @param {Object} userInfo - 用户信息 */ export function setLoginInfo(token, userInfo) { uni.setStorageSync(TOKEN_KEY, token) uni.setStorageSync(USER_INFO_KEY, JSON.stringify(userInfo)) } /** * 获取 Token * @returns {string|null} */ export function getToken() { return uni.getStorageSync(TOKEN_KEY) || null } /** * 获取用户信息 * @returns {Object|null} */ export function getUserInfo() { const info = uni.getStorageSync(USER_INFO_KEY) if (!info) return null try { return JSON.parse(info) } catch { return null } } /** * 检查是否已登录 * @returns {boolean} */ export function isLoggedIn() { return !!getToken() } /** * 设置用户角色 * @param {'user'|'merchant'} role */ export function setRole(role) { uni.setStorageSync(ROLE_KEY, role) } /** * 获取用户角色 * @returns {'user'|'merchant'|null} */ export function getRole() { return uni.getStorageSync(ROLE_KEY) || null } /** * 清除登录状态(退出登录) */ export function clearAuth() { uni.removeStorageSync(TOKEN_KEY) uni.removeStorageSync(USER_INFO_KEY) uni.removeStorageSync(ROLE_KEY) } /** * 登录态检查,未登录时跳转登录页 * @returns {boolean} 是否已登录 */ export function checkLogin() { if (isLoggedIn()) return true uni.navigateTo({ url: '/pages/login/index' }) return false } export default { setLoginInfo, getToken, getUserInfo, isLoggedIn, setRole, getRole, clearAuth, checkLogin }