Files
hzdyjs/mobile/utils/auth.js
T
2025-06-26 18:30:03 +08:00

128 lines
2.4 KiB
JavaScript

/**
* 认证工具类
*/
const TOKEN_KEY = 'token';
const USER_INFO_KEY = 'userInfo';
/**
* 获取Token
*/
export function getToken() {
return uni.getStorageSync(TOKEN_KEY);
}
/**
* 设置Token
*/
export function setToken(token) {
return uni.setStorageSync(TOKEN_KEY, token);
}
/**
* 移除Token
*/
export function removeToken() {
return uni.removeStorageSync(TOKEN_KEY);
}
/**
* 获取用户信息
*/
export function getUserInfo() {
return uni.getStorageSync(USER_INFO_KEY);
}
/**
* 设置用户信息
*/
export function setUserInfo(userInfo) {
return uni.setStorageSync(USER_INFO_KEY, userInfo);
}
/**
* 移除用户信息
*/
export function removeUserInfo() {
return uni.removeStorageSync(USER_INFO_KEY);
}
/**
* 检查是否已登录
*/
export function isLoggedIn() {
const token = getToken();
return !!token;
}
/**
* 清除所有认证信息
*/
export function clearAuth() {
removeToken();
removeUserInfo();
}
/**
* 登录
*/
export function login(loginData) {
return new Promise((resolve, reject) => {
// 模拟登录API调用
setTimeout(() => {
if (loginData.username === 'admin' && loginData.password === 'admin') {
const token = 'mock-token-' + Date.now();
const userInfo = {
id: 1,
username: loginData.username,
nickname: '管理员',
avatar: '/static/avatar.png',
title: '系统管理员',
};
setToken(token);
setUserInfo(userInfo);
resolve({
success: true,
data: {
token,
userInfo,
},
});
} else {
reject(new Error('用户名或密码错误'));
}
}, 1000);
});
}
/**
* 退出登录
*/
export function logout() {
return new Promise((resolve) => {
clearAuth();
// 跳转到登录页
uni.reLaunch({
url: '/pages/login/login',
});
resolve({ success: true });
});
}
/**
* 检查登录状态并跳转
*/
export function checkAuth() {
if (!isLoggedIn()) {
uni.reLaunch({
url: '/pages/login/login',
});
return false;
}
return true;
}