Private Route with React Router
RequireAuth can only be used with React Router v6. If you are using React Router v5,
please use React-kuth-kit v1.x with PrivateRoute.
Installation
To use Private Route with React Router, you need to install the react-router plugin for react auth kit.
To install and save in your package.json dependencies, run:
Usage
@auth-kit/react-router comes with 2 useful functions that help to manage routing with React Router.
These Functions are:
- AuthOutlet - Used to Secure multiple routes at once.
- RequireAuth - Used to Secure individual routes one at a time, preferred for a granular approach.
AuthOutlet
Import
| Import AuthOutlet |
|---|
| import AuthOutlet from '@auth-kit/react-router/AuthOutlet'
|
Usage
Add AuthOutlet in your Routes Files inside BrowserRouter or HashRouter
| RouteComponent.jsx |
|---|
| <BrowserRouter>
<Routes>
<Route path={'/'} element={<Home/>}/>
<Route path={'/login' } element={<Login/>}/>
<Route element={<AuthOutlet fallbackPath='/login' />}>
<Route path='/' element={<Users/>} />
<Route path='/products' element={<Products/>} />
</Route>
</Routes>
</BrowserRouter>
|
Full Code
| import React from "react";
import {BrowserRouter, Routes, Route} from "react-router-dom";
import AuthOutlet from '@auth-kit/react-router/AuthOutlet';
import SecureComponent from "./SecureComponent";
const Routes = () => {
return (
<BrowserRouter>
<Routes>
<Route path={'/'} element={<Home/>}/>
<Route path={'/login' } element={<Login/>}/>
<Route element={<AuthOutlet fallbackPath='/login' />}>
<Route path='/' element={<Users/>} />
<Route path='/products' element={<Products/>} />
</Route>
</Routes>
</BrowserRouter>
)
}
|
RequireAuth
Import
| Import RequireAuth |
|---|
| import RequireAuth from '@auth-kit/react-router/RequireAuth'
|
Usage
Add RequireAuth in your Routes Files inside BrowserRouter or HashRouter
| RouteComponent.jsx |
|---|
| <BrowserRouter>
<Routes>
<Route path={'/'} element={<Home/>}/>
<Route path={'/login' } element={<Login/>}/>
<Route path={'/secure'} element={
<RequireAuth fallbackPath={'/login'}>
<SecureComponent/>
</RequireAuth>
}
/>
</Routes>
</BrowserRouter>
|
Full Code
| import React from "react";
import {BrowserRouter, Routes, Route} from "react-router-dom";
import RequireAuth from '@auth-kit/react-router/RequireAuth';
import SecureComponent from "./SecureComponent";
const Routes = () => {
return (
<BrowserRouter>
<Routes>
<Route path={'/'} element={<Home/>}/>
<Route path={'/login' } element={<Login/>}/>
<Route path={'/secure'} element={
<RequireAuth fallbackPath={'/login'}>
<SecureComponent/>
</RequireAuth>
}
/>
</Routes>
</BrowserRouter>
)
}
|
— 🔑 —
React Auth Kit is Apache 2.0 License code