Skip to content

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.