react 프로젝트를 하는 중 서버가 다운되면서 로그인이 풀리는 현상이 계속해서 일어났다.
reudx 쪽에서 logoutUser의 return 값에 isInit: true 를 추가해줬다.
헤더쪽의 로그아웃을 눌렀을때 logout 액션을 취해주고
auth_guard_component.jsx 에서 user.init == false 인 경우 로딩중을 리턴해주는 코드를 입력해줬더니 문제가 해결됐다.
user.store.js
logoutUser: () => {
clearAccessToken();
axios.defaults.headers.common['Authorization'] = null
return { ...userInitialState, isInit: true }
}
header.layout.jsx
const logOut = () => {
dispatch(logoutUser());
};
auth_guard_component.jsx
const AuthGaurdComponent = ({ children }) => {
const user = useSelector((rootState) => rootState.user);
if (!user.isInit) {
return <div>Loading...</div>;
} else if (user.id) {
return children;
} else {
console.log("not user");
return <Navigate to="/login/member_login" replace={true}></Navigate>;
}
};