128 lines
2.4 KiB
JavaScript
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;
|
|
}
|