97 lines
1.9 KiB
JavaScript
Executable File
97 lines
1.9 KiB
JavaScript
Executable File
import JsBase64 from 'js-base64'
|
||
|
||
const USER_TOKEN = 'MANAGE_TOKEN'
|
||
const USER_INFO = 'MANAGE_USERINFO'
|
||
const USER_SETTING = 'MANAGE_SETTING'
|
||
|
||
/**
|
||
* 设置用户授权token
|
||
*
|
||
* @param {String} token - JWT令牌
|
||
* @param {Number} expires - 过期时间戳(秒)
|
||
*/
|
||
export function setToken(token, expires) {
|
||
expires = new Date().getTime() + expires * 1000
|
||
return localStorage.setItem(
|
||
USER_TOKEN,
|
||
JSON.stringify({
|
||
token,
|
||
expires,
|
||
})
|
||
)
|
||
}
|
||
|
||
/**
|
||
* 获取授权token
|
||
* @returns {String} token
|
||
*/
|
||
export function getToken() {
|
||
const result = JSON.parse(
|
||
localStorage.getItem(USER_TOKEN) ||
|
||
JSON.stringify({
|
||
token: '',
|
||
expires: 0,
|
||
})
|
||
)
|
||
|
||
// 检查token是否过期
|
||
if (result.expires > 0 && result.expires < new Date().getTime()) {
|
||
// token已过期,清除token
|
||
removeAll()
|
||
return ''
|
||
}
|
||
|
||
return result.token
|
||
}
|
||
|
||
/**
|
||
* 检查用户是否登录
|
||
* @returns {Boolean}
|
||
*/
|
||
export function isLogin() {
|
||
return !!getToken()
|
||
}
|
||
|
||
/**
|
||
* 设置用户信息
|
||
*
|
||
* @param {Object} data
|
||
*/
|
||
export function setUserInfo(data) {
|
||
localStorage.setItem(USER_INFO, JsBase64.Base64.encode(JSON.stringify(data)))
|
||
}
|
||
|
||
/**
|
||
* 获取用户信息
|
||
*/
|
||
export function getUserInfo() {
|
||
const data = JsBase64.Base64.decode(localStorage.getItem(USER_INFO) || '')
|
||
return data ? JSON.parse(data) : {}
|
||
}
|
||
|
||
/**
|
||
* 获取用户本地缓存的设置信息
|
||
*/
|
||
export function getUserSettingCache() {
|
||
const data = localStorage.getItem(USER_SETTING)
|
||
return data ? JSON.parse(data) : {}
|
||
}
|
||
|
||
/**
|
||
* 用户设置保存到浏览器缓存中
|
||
*
|
||
* @param {Object} state 用户设置相关信息
|
||
*/
|
||
export function setUserSettingCache(state) {
|
||
localStorage.setItem(USER_SETTING, JSON.stringify(state))
|
||
}
|
||
|
||
/**
|
||
* 删除用户相关缓存信息
|
||
*/
|
||
export function removeAll() {
|
||
localStorage.removeItem(USER_TOKEN)
|
||
localStorage.removeItem(USER_INFO)
|
||
//localStorage.removeItem(USER_SETTING)
|
||
}
|