82 lines
1.4 KiB
JavaScript
82 lines
1.4 KiB
JavaScript
|
|
/**
|
||
|
|
* 认证工具 - 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
|
||
|
|
}
|