| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import { useCache, CACHE_KEY } from "@hooks/useCache";
- import { decrypt, encrypt } from "@utils/jsencrypt";
- const { wsCache } = useCache();
- const AccessTokenKey = "ACCESS_TOKEN";
- const RefreshTokenKey = "REFRESH_TOKEN";
- type TokenType = {
- id: number; // 编号
- accessToken: string; // 访问令牌
- refreshToken: string; // 刷新令牌
- userId: number; // 用户编号
- userType?: number; //用户类型
- clientId?: string; //客户端编号
- expiresTime: number; //过期时间
- };
- // 获取token
- export const getAccessToken = () => {
- // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错
- const accessToken = wsCache.get(AccessTokenKey);
- return accessToken ? accessToken : wsCache.get("ACCESS_TOKEN");
- };
- // 刷新token
- export const getRefreshToken = () => {
- return wsCache.get(RefreshTokenKey);
- };
- // 设置token
- export const setToken = (token: TokenType) => {
- wsCache.set(RefreshTokenKey, token.refreshToken);
- wsCache.set(AccessTokenKey, token.accessToken);
- };
- // 删除token
- export const removeToken = () => {
- wsCache.delete(AccessTokenKey);
- wsCache.delete(RefreshTokenKey);
- };
- /** 格式化token(jwt格式) */
- export const formatToken = (token: string): string => {
- return "Bearer " + token;
- };
- // ========== 账号相关 ==========
- export type LoginFormType = {
- tenantName?: string;
- username: string;
- password: string;
- rememberMe?: boolean;
- };
- export const getLoginForm = () => {
- const loginForm: LoginFormType = wsCache.get(CACHE_KEY.LoginForm);
- if (loginForm) {
- loginForm.password = decrypt(loginForm.password) as string;
- }
- return loginForm;
- };
- export const setLoginForm = (loginForm: LoginFormType) => {
- loginForm.password = encrypt(loginForm.password) as string;
- wsCache.set(CACHE_KEY.LoginForm, loginForm, { exp: 30 * 24 * 60 * 60 });
- };
- export const removeLoginForm = () => {
- wsCache.delete(CACHE_KEY.LoginForm);
- };
|