[React] 라우터를 이용한 접근 제한 처리
📄 라우터를 이용한 접근 제한 처리
라우터를 사용해 단순하게 경로를 설정해주는 것이 아닌 토큰이나 쿠키의 여부에 따라 접근 제한처리를 하는 것도 가능합니다.
💾 [publicRoute.js]
const PublicRoute = ({ children }) => {
const isLogined = getLocalStorageToken();
return isLogined ? <Navigate to="/todo" /> : children;
};
PublicRoute
는 로그인 여부와 상관없이 모든 사용자에게 제공된다.- 토큰이 있을 경우
/todo
경로로 리다이렉트한다.
💾 [privateRoute.js]
const PrivateRoute = ({ children }) => {
const isLogined = getLocalStorageToken();
return isLogined ? children : <Navigate to="/" />;
};
PrivateRoute
는 로그인한 사용자에게만 제공된다.- 토큰이 없을 경우
/
경로로 리다이렉트 한다.
💾 [Route.js]
function Router() {
return (
<Routes>
<Route
path="/"
element={
<PublicRoute>
<Home />
</PublicRoute>
}
/>
<Route
path="/todo"
element={
<PrivateRoute>
<Todos />
</PrivateRoute>
}
/>
</Routes>
);
}
- Route를 설정할 때 해당 컴포넌트를
PrivateRoute
또는PublicRoute
로 감싸서 사용한다.
Leave a comment