Protected Route
Overview
Protected routes ensure that only authenticated users can access certain parts of the application. Here, we implement protected routes using React Router.
Steps to Create Protected Routes
Step 1: Create a PrivateRoute Component
Create PrivateRoute.jsx
inside the features/auth/components/
directory:
import React from "react";
import { Navigate } from "react-router-dom";
const PrivateRoute = ({ children }) => {
const isAuthenticated = !!localStorage.getItem("token");
return isAuthenticated ? children : <Navigate to="/login" replace />;
};
export default PrivateRoute;
Step 2: Wrap Protected Routes
Wrap your protected routes with the PrivateRoute
component in App.jsx
:
import React from "react";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import Login from "./features/auth/pages/Login";
import Dashboard from "./features/dashboard/pages/Dashboard";
import PrivateRoute from "./features/auth/components/PrivateRoute";
const App = () => {
return (
<Router>
<Routes>
<Route path="/login" element={<Login />} />
<Route
path="/dashboard"
element={
<PrivateRoute>
<Dashboard />
</PrivateRoute>
}
/>
</Routes>
</Router>
);
};
export default App;
Benefits of Protected Routes
- Enhances application security.
- Ensures sensitive data is accessible only to authenticated users.
- Provides a seamless user experience.