access_token 쿠키 확인하여 로그인 상태 유지 처리

ProtectedRoute 로 로그인 필요 페이지 접근 관리
import 문을 src/ 포함된 절대경로로 개선
This commit is contained in:
2026-01-02 11:21:56 +09:00
parent 985ba75d34
commit 767435cad4
19 changed files with 125 additions and 156 deletions

View File

@@ -1,4 +1,4 @@
import axios from './axios';
import axios from 'src/axios/axios';
import { jwtDecode } from 'jwt-decode';
export const getAccessTokenFromCookie = (): string | null => {
@@ -30,7 +30,7 @@ export interface DecodedToken {
encryptedPayload: string;
memberId: string;
memberName: string;
expiration: number;
exp: number;
}
// 로그인 API
@@ -48,8 +48,8 @@ export const register = async (data: RegisterData): Promise<{ message: string }>
// 로그아웃 API
export const logout = async (): Promise<void> => {
await axios.post('/auth/logout');
//localStorage.removeItem('access_token');
//localStorage.removeItem('refresh_token');
localStorage.removeItem('accessToken');
localStorage.removeItem('refreshToken');
document.cookie = 'access_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/';
document.cookie = 'refresh_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/';
};
@@ -60,7 +60,9 @@ export const isTokenValid = (token: string): boolean => {
const decoded = jwtDecode<DecodedToken>(token);
const currentTime = Date.now() / 1000;
return decoded.expiration > currentTime;
if (!decoded.exp) return false; // 만료 정보가 없으면 일단 유효하다고 판단하거나, 정책에 따라 변경 가능
return decoded.exp > currentTime;
} catch (error) {
return false;
}
@@ -75,9 +77,3 @@ export const getUserFromToken = (token: string): DecodedToken | null => {
return null;
}
};
// 현재 사용자 정보 가져오기
export const getCurrentUser = async () => {
const response = await axios.get('/auth/me');
return response.data;
};