mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-12-09 14:40:27 +08:00
refactor: axios methods and env
This commit is contained in:
43
src/utils/auth.ts
Normal file
43
src/utils/auth.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import Cookies from "js-cookie";
|
||||
import { useUserStoreHook } from "/@/store/modules/user";
|
||||
|
||||
const TokenKey = "authorized-token";
|
||||
|
||||
type paramsMapType = {
|
||||
name: string;
|
||||
expires: number;
|
||||
accessToken: string;
|
||||
};
|
||||
|
||||
// 获取token
|
||||
export function getToken() {
|
||||
// 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错
|
||||
return Cookies.get("authorized-token");
|
||||
}
|
||||
|
||||
// 设置token以及过期时间(cookies、sessionStorage各一份)
|
||||
// 后端需要将用户信息和token以及过期时间都返回给前端,过期时间主要用于刷新token
|
||||
export function setToken(data) {
|
||||
const { accessToken, expires, name } = data;
|
||||
// 提取关键信息进行存储
|
||||
const paramsMap: paramsMapType = {
|
||||
name,
|
||||
expires: Date.now() + parseInt(expires),
|
||||
accessToken
|
||||
};
|
||||
const dataString = JSON.stringify(paramsMap);
|
||||
useUserStoreHook().SET_TOKEN(accessToken);
|
||||
useUserStoreHook().SET_NAME(name);
|
||||
expires > 0
|
||||
? Cookies.set(TokenKey, dataString, {
|
||||
expires: expires / 86400000
|
||||
})
|
||||
: Cookies.set(TokenKey, dataString);
|
||||
sessionStorage.setItem(TokenKey, dataString);
|
||||
}
|
||||
|
||||
// 删除token
|
||||
export function removeToken() {
|
||||
Cookies.remove(TokenKey);
|
||||
sessionStorage.removeItem(TokenKey);
|
||||
}
|
||||
Reference in New Issue
Block a user