ai_images/portal-ui/src/utils/auth.js

100 lines
2.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Cookies from 'js-cookie'
const TokenKey = 'Authorization-Token'
import $storage from 'good-storage'
import store from '@/store'
import { encode } from 'js-base64'
// token失效时间
const expiresDays = 365
// 获取登录信息
export function getUserInfo() {
return $storage.get('userInfo') || {}
}
// 设置用户信息
export function setUserInfo(data) {
let userInfoKey = 'userInfo'
$storage.set(userInfoKey, data)
}
// 获取token
export function getToken() {
return Cookies.get(TokenKey)
}
/**
* 设置Token没有失效时间
* 需要判断当前是否是应用不同的应用存为不同的token
* @param {String} token
*/
export function setToken(token) {
return Cookies.set(TokenKey, token, { expires: expiresDays })
}
// 移除Token
export function removeToken() {
return Cookies.remove(TokenKey)
}
// 设置登录信息
export function setLogin(value) {
return Cookies.set("loginInfo", JSON.stringify(value), { expires: expiresDays })
}
// 读取登录名
export function getLogin() {
return Cookies.get("loginInfo")
}
// 获取请求头参数
export function getHeaders() {
let headers = {}
// 请求中包含token
const token = getToken()
if (token) headers.Authorization = `Bearer ${token}`
headers['x-login-type'] = "web"
// 多语言
let lang = store.state.main.language;
// headers.LanguageCode = lang;
headers['language'] = lang;
return headers
}
// 获取组件尺寸
export function getDimension() {
let dimension = localStorage.getItem('dimension') || 'default'
return dimension
}
// 设置组件尺寸
export function setDimension(value) {
return localStorage.setItem('dimension', value)
}
// 获取当前语言
export function getLang() {
return store.state.main.language
}
// 切换主题
export function toggleTheme() {
let theme = store.state.main.theme
let current = document.body.getAttribute('arco-theme') || ''
if (theme !== current) {
if (theme == 'dark') {
document.body.setAttribute('arco-theme', 'dark')
} else if (theme == '') {
document.body.removeAttribute('arco-theme')
}
}
}
// 判断是否有权限
export function hasPermission(code) {
if (!code) return false
if (code === 'pass') return true
let permissions = store.state.user.permissions
return permissions.some((item) => item === code)
}