Skip to content
Snippets Groups Projects
Commit 55e48d57 authored by nahyun's avatar nahyun
Browse files

refector: 코드 정리

parent dfca91aa
No related branches found
No related tags found
No related merge requests found
...@@ -34,14 +34,8 @@ export function useToast() { ...@@ -34,14 +34,8 @@ export function useToast() {
// // setIsAuthenticated(false); // // setIsAuthenticated(false);
// // }; // // };
// //jwt 전 로그인------------------------- // //jwt 전 로그인-------------------------
// //jwt 후 로그인-------------------------
// const logout = () => {
// localStorage.removeItem('token');
// delete axios.defaults.headers.common['Authorization'];
// setUser(null);
// setIsAuthenticated(false);
// }; // };
//jwt 후 로그인------------------------- //jwt 후 로그인-------------------------
function App() { function App() {
const [isAuthenticated, setIsAuthenticated] = useState(() => { const [isAuthenticated, setIsAuthenticated] = useState(() => {
...@@ -69,35 +63,6 @@ function App() { ...@@ -69,35 +63,6 @@ function App() {
setLastActivity(Date.now()); setLastActivity(Date.now());
}; };
// // 토큰 만료 체크 함수
// const checkTokenExpiration = () => {
// const token = localStorage.getItem('token');
// if (token) {
// try {
// const decoded = jwt_decode(token);
// if (decoded.exp * 1000 < Date.now()) {
// // 토큰 만료시 로그아웃과 동일한 효과
// localStorage.removeItem('token');
// setUser(null);
// setIsAuthenticated(false);
// toast.info('세션이 만료되었습니다. 다시 로그인해주세요.');
// }
// } catch (error) {
// localStorage.removeItem('token');
// setUser(null);
// setIsAuthenticated(false);
// }
// }
// };
// // 주기적으로 토큰 체크 (30초마다)
// React.useEffect(() => {
// const timer = setInterval(checkTokenExpiration, 30000);
// // 컴포넌트가 언마운트될 때 타이머 정리
// return () => clearInterval(timer);
// }, []);
// 추가--------------------------------
// 토큰 갱신 함수 // 토큰 갱신 함수
const refreshToken = async () => { const refreshToken = async () => {
try { try {
...@@ -134,53 +99,6 @@ function App() { ...@@ -134,53 +99,6 @@ function App() {
} }
}; };
// 사용자 활동 감지 - 안되면 다시 활성화
// useEffect(() => {
// const updateActivity = async (e) => {
// // input 태그나 textarea에서의 이벤트는 무시
// if (e.target.tagName.toLowerCase() === 'input' ||
// e.target.tagName.toLowerCase() === 'textarea') {
// console.log('입력 필드 이벤트 무시');
// return;
// }
// const now = Date.now();
// const timeSinceLastRefresh = now - lastTokenRefresh;
// setLastActivity(now);
// console.log('활동 감지:', {
// 현재시간: new Date(now).toLocaleString(),
// 마지막갱신: new Date(lastTokenRefresh).toLocaleString(),
// 경과시간: Math.floor(timeSinceLastRefresh / 1000 / 60) + '분'
// });
// // 마지막 토큰 갱신으로부터 00분 이상 지났을 때만 갱신
// if (timeSinceLastRefresh > (process.env.REACT_APP_TOKEN_EXPIRATION-1) * 60 * 1000) {
// console.log('토큰 갱신 시도...');
// await refreshToken();
// } else {
// console.log(`토큰 갱신까지 ${Math.ceil((process.env.REACT_APP_TOKEN_EXPIRATION-1) - timeSinceLastRefresh/1000/60)}분 남음`);
// }
// };
// console.log('이벤트 리스너 등록됨');
// window.addEventListener('mousemove', updateActivity);
// window.addEventListener('keydown', updateActivity);
// window.addEventListener('click', updateActivity);
// window.addEventListener('scroll', updateActivity);
// window.addEventListener('touchstart', updateActivity);
// return () => {
// console.log('이벤트 리스너 제거됨');
// window.removeEventListener('mousemove', updateActivity);
// window.removeEventListener('keydown', updateActivity);
// window.removeEventListener('click', updateActivity);
// window.removeEventListener('scroll', updateActivity);
// window.removeEventListener('touchstart', updateActivity);
// };
// }, [lastTokenRefresh]);
//안되면 다시 활성화 -------------
const logout = () => { const logout = () => {
localStorage.removeItem('token'); localStorage.removeItem('token');
setUser(null); setUser(null);
...@@ -228,7 +146,7 @@ useEffect(() => { ...@@ -228,7 +146,7 @@ useEffect(() => {
useEffect(() => { useEffect(() => {
const checkInactivity = () => { const checkInactivity = () => {
const inactiveTime = Date.now() - lastActivity; const inactiveTime = Date.now() - lastActivity;
if (inactiveTime > process.env.REACT_APP_TOKEN_EXPIRATION * 60 * 1000) { // 토큰 만료시간 if (inactiveTime > process.env.REACT_APP_TOKEN_EXPIRATION * 60 * 1000) { // 토큰 만료시간: REACT_APP_TOKEN_EXPIRATION 확인
logout(); logout();
toast.info('장시간 활동이 없어 로그아웃되었습니다.'); toast.info('장시간 활동이 없어 로그아웃되었습니다.');
} }
...@@ -237,7 +155,6 @@ useEffect(() => { ...@@ -237,7 +155,6 @@ useEffect(() => {
const interval = setInterval(checkInactivity, 30000); // 30초마다 체크 const interval = setInterval(checkInactivity, 30000); // 30초마다 체크
return () => clearInterval(interval); return () => clearInterval(interval);
}, [lastActivity]); }, [lastActivity]);
//--------------------------------
const login = (userData) => { const login = (userData) => {
setUser(userData); setUser(userData);
...@@ -261,11 +178,6 @@ useEffect(() => { ...@@ -261,11 +178,6 @@ useEffect(() => {
); );
} }
// function PrivateRoute({ children }) {
// const { isAuthenticated } = useAuth();
// return isAuthenticated ? children : <Navigate to="/login" />;
// }
function PrivateRoute({ children }) { function PrivateRoute({ children }) {
const { isAuthenticated } = useAuth(); const { isAuthenticated } = useAuth();
const token = localStorage.getItem('token'); const token = localStorage.getItem('token');
......
...@@ -18,7 +18,7 @@ function Login() { ...@@ -18,7 +18,7 @@ function Login() {
const toast = useToast(); const toast = useToast();
//jwt 전 로그인------------------------- //세션 로그인-------------------------
// useEffect(() => { // useEffect(() => {
// const params = new URLSearchParams(window.location.search); // const params = new URLSearchParams(window.location.search);
// const userParam = params.get('user'); // const userParam = params.get('user');
...@@ -35,7 +35,7 @@ function Login() { ...@@ -35,7 +35,7 @@ function Login() {
// } // }
// } // }
// }, [navigate, login, toast]); // }, [navigate, login, toast]);
//jwt 전 로그인-------------------------
//jwt 후 로그인------------------------- //jwt 후 로그인-------------------------
useEffect(() => { useEffect(() => {
const params = new URLSearchParams(window.location.hash.substring(1)); const params = new URLSearchParams(window.location.hash.substring(1));
...@@ -59,10 +59,9 @@ function Login() { ...@@ -59,10 +59,9 @@ function Login() {
navigate('/'); navigate('/');
} }
}, [navigate, login, toast]); }, [navigate, login, toast]);
//jwt 후 로그인-------------------------
//jwt 전 로그인------------------------- //세션 로그인-------------------------
// const handleLogin = async (e) => { // const handleLogin = async (e) => {
// e.preventDefault(); // e.preventDefault();
// setLoading(true); // setLoading(true);
...@@ -91,7 +90,6 @@ function Login() { ...@@ -91,7 +90,6 @@ function Login() {
// setLoading(false); // setLoading(false);
// } // }
// }; // };
//jwt 전 로그인-------------------------
//jwt 후 로그인------------------------- //jwt 후 로그인-------------------------
// handleLogin 함수만 수정 // handleLogin 함수만 수정
...@@ -100,22 +98,6 @@ const handleLogin = async (e) => { ...@@ -100,22 +98,6 @@ const handleLogin = async (e) => {
setLoading(true); setLoading(true);
try { try {
// const response = await axios.post('http://localhost:8000/login', {
// email: username,
// password: password
// });
// if (response.status === 200) {
// // JWT 토큰 저장
// const { token, user } = response.data;
// localStorage.setItem('token', token);
// // axios 기본 헤더에 토큰 설정
// axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
// login(user);
// toast.success('로그인에 성공했습니다.');
// navigate('/');
// }
const response = await axios.post(`${API_URL}/login`, { const response = await axios.post(`${API_URL}/login`, {
email: username, email: username,
password: password password: password
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment