Files
martial-mini/utils/auth.js
2025-12-14 17:39:19 +08:00

103 lines
1.8 KiB
JavaScript

/**
* Token管理工具
*/
const TOKEN_KEY = 'access_token'
const REFRESH_TOKEN_KEY = 'refresh_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)
}
/**
* 获取RefreshToken
*/
export function getRefreshToken() {
return uni.getStorageSync(REFRESH_TOKEN_KEY)
}
/**
* 设置RefreshToken
*/
export function setRefreshToken(token) {
return uni.setStorageSync(REFRESH_TOKEN_KEY, token)
}
/**
* 获取用户信息
*/
export function getUserInfo() {
try {
const userInfo = uni.getStorageSync(USER_INFO_KEY)
// 如果没有数据,返回 null
if (!userInfo) {
console.log('本地存储中没有用户信息')
return null
}
// 如果已经是对象,直接返回
if (typeof userInfo === 'object') {
return userInfo
}
// 如果是字符串,尝试解析
if (typeof userInfo === 'string') {
return JSON.parse(userInfo)
}
return null
} catch (error) {
console.error('获取用户信息失败:', error)
return null
}
}
/**
* 设置用户信息
*/
export function setUserInfo(userInfo) {
return uni.setStorageSync(USER_INFO_KEY, JSON.stringify(userInfo))
}
/**
* 移除用户信息
*/
export function removeUserInfo() {
return uni.removeStorageSync(USER_INFO_KEY)
}
/**
* 检查是否登录
*/
export function isLogin() {
return !!(getToken() && getUserInfo())
}
/**
* 清除所有认证信息
*/
export function clearAuth() {
removeToken()
uni.removeStorageSync(REFRESH_TOKEN_KEY)
removeUserInfo()
}