import { UserApi } from '@/api/user.api'; export default class TokenManager { static MANAGER: TokenManager; refreshInterval: any; _token: string = ""; _refreshToken: string = ""; constructor(token: string, refreshToken: string) { if (TokenManager.MANAGER) { return TokenManager.MANAGER; } this.token = token; this.refreshToken = refreshToken; // this.refreshInterval = setInterval(this.refreshTokenFunc, 5 * 60 * 1000); TokenManager.MANAGER = this; } get token(): string { return this._token; } set token(value: string) { sessionStorage.setItem('token', value); this._token = value; } get refreshToken() { return this._refreshToken; } set refreshToken(value: string) { sessionStorage.setItem('refreshToken', value); this._refreshToken = value; } clear() { sessionStorage.setItem('token', ''); sessionStorage.setItem('refreshToken', ''); // clearInterval(this.refreshInterval); } refreshTokenFunc() { const that: TokenManager = TokenManager.MANAGER; UserApi.RefreshToken(that.refreshToken).then((data: any) => { if (!data || !data.data) return; that.token = data.data.token; that.refreshToken = data.data.refreshToken; }, () => { }); } }