Skip to content
Snippets Groups Projects

refactor: 토큰 활성 시간 경과 시 로그인 페이지로 이동

Merged 정원제 requested to merge refactor/loginTimeout into main
4 files
+ 25
2
Compare changes
  • Side-by-side
  • Inline

Files

+ 19
1
@@ -10,7 +10,19 @@ const api = axios.create({
api.interceptors.request.use(config => {
const token = sessionStorage.getItem('accessToken');
const expiresAt = sessionStorage.getItem('tokenExpiresAt');
if (token) {
// 토큰 만료 체크
if (expiresAt && Date.now() >= parseInt(expiresAt)) {
sessionStorage.removeItem('accessToken');
sessionStorage.removeItem('tokenExpiresAt');
if (!window.location.pathname.includes('/login')) {
alert('로그인이 만료되었습니다. 다시 로그인해주세요.');
window.location.href = '/login';
}
return Promise.reject('Token expired');
}
config.headers.Authorization = `Bearer ${token}`;
}
return config;
@@ -19,9 +31,15 @@ api.interceptors.request.use(config => {
api.interceptors.response.use(
response => response,
error => {
// 401 에러 처리
if (error.response?.data.statusCode === 401) {
sessionStorage.removeItem('accessToken');
window.location.href = '/login';
sessionStorage.removeItem('tokenExpiresAt');
if (!window.location.pathname.includes('/login')) {
alert('로그인이 필요합니다. 로그인 페이지로 이동합니다.');
window.location.href = '/login';
}
}
return Promise.reject(error);
}
Loading