import { ApiClient } from "../clients/api_client"; import axios from "axios"; export default class Token { get() { return sessionStorage.getItem("token"); } set(token: string) { sessionStorage.setItem("token", token); } getRefresh() { return sessionStorage.getItem("refresh"); } setRefresh(refresh_token: string) { sessionStorage.setItem("refresh", refresh_token); } present() { return sessionStorage.getItem("token") != null; } logout() { sessionStorage.removeItem("token"); sessionStorage.removeItem("refresh"); } refresh() { const options = { headers: { Authorization: `Bearer ${this.getRefresh()}` } } try { const response = axios.post('/refresh_tokens', null, options); this.setRefresh(response.data.refresh); this.set(response.data.token); } catch(error) { this.logout(); } } }