Files
CNCEC_APP/utils/auth.js
T

82 lines
1.4 KiB
JavaScript
Raw Normal View History

2026-08-17 11:01:21 +08:00
/**
* 认证工具 - 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
}