import { AxiosRequestConfig } from "axios"; export default class Auth { /** * sessionStorage에서 accessToken을 꺼낸다. */ static getAccessToken() { return sessionStorage.getItem("accessToken"); } /** * sessionStorage에서 refreshToken을 꺼낸다. */ static getRefreshToken() { return sessionStorage.getItem("refreshToken"); } /** * sessionStorage에서 accessToken을 삭제한다. */ static removeAccessToken() { sessionStorage.removeItem("accessToken"); } /** * sessionStorage에서 refreshToken을 삭제한다. */ static removeRefreshToken() { sessionStorage.removeItem("refreshToken"); } /** * sessionStorage에 accessToken을 저장한다. */ static setAccessToken(accessToken: string) { sessionStorage.setItem("accessToken", accessToken); } /** * sessionStorage에 refreshToken을 저장한다. */ static setRefreshToken(refreshToken: string) { sessionStorage.setItem("refreshToken", refreshToken); } /** * sessionStorage에서 accessToken을 꺼내고 값이 있으면 true, 없으면 false를 return한다. */ static isAuthenticated() { const storedAccessToken = Auth.getAccessToken(); return !!storedAccessToken; } /** * axios 요청 시 request의 header에 accessToken을 넣어 return한다. */ static jwtRequestHandler(requestConfig: AxiosRequestConfig) { requestConfig.headers.common.Authorization = `Bearer ${Auth.getAccessToken()}`; return requestConfig; } }