Anuj-Panthri commited on
Commit
c5243fe
·
1 Parent(s): 8830402

added protected routes

Browse files
client/src/App.js CHANGED
@@ -14,13 +14,13 @@ function App() {
14
  <Router>
15
  <Routes>
16
  <Route element={<LoginPage />} path="/login" />
17
- <Route element={<SignupPage />} path="/signup" />
18
- <Route element={<ChatPage />} path="/" />
19
-
20
- {/* <Route element={<PrivateRoutes />}>
21
  <Route element={<ChatPage />} path="/" />
22
- </Route> */}
23
-
24
  </Routes>
25
  </Router>
26
 
 
14
  <Router>
15
  <Routes>
16
  <Route element={<LoginPage />} path="/login" />
17
+ <Route element={<SignupPage />} path="/signup" />
18
+ {/* <Route element={<ChatPage />} path="/" /> */}
19
+
20
+ <Route element={<PrivateRoutes />}>
21
  <Route element={<ChatPage />} path="/" />
22
+ </Route>
23
+
24
  </Routes>
25
  </Router>
26
 
client/src/PrivateRoutes.jsx CHANGED
@@ -1,27 +1,38 @@
1
- import React from 'react'
2
- import {Outlet,Navigate} from "react-router-dom";
3
 
4
  function PrivateRoutes() {
5
- const getAuthStatus = async ()=>{
6
-
7
- const res = await fetch(process.env.REACT_APP_BACKEND_URL+"/session",{
8
- credentials:"include"
9
- })
10
-
11
- return res.ok;
12
- }
13
-
14
- const isAuth = getAuthStatus();
 
 
 
 
 
 
15
 
16
- if (isAuth === undefined) {
17
- return <p>
18
- Loading ...
19
- </p>
20
- }
21
 
22
- return (
23
- isAuth ? <Outlet/>:<Navigate to="/login" />
24
- );
 
 
 
 
 
 
 
 
 
 
25
  }
26
 
27
  export default PrivateRoutes
 
1
+ import React, { useState,useEffect } from 'react'
2
+ import { Outlet, Navigate } from "react-router-dom";
3
 
4
  function PrivateRoutes() {
5
+ const [isAuth, setIsAuth] = useState(undefined);
6
+ const getAuthStatus = async () => {
7
+
8
+ const res = await fetch(process.env.REACT_APP_BACKEND_URL + "/session", {
9
+ credentials: "include"
10
+ })
11
+
12
+ return res.ok;
13
+ }
14
+
15
+ useEffect(()=>{
16
+ getAuthStatus().then((status)=>{
17
+ console.log(status);
18
+ setIsAuth(status);
19
+ })
20
+ },[])
21
 
 
 
 
 
 
22
 
23
+ if (isAuth === undefined) {
24
+ return <p>
25
+ Loading ...
26
+ </p>
27
+ }
28
+ else{
29
+
30
+ return (
31
+ isAuth ? <Outlet /> : <Navigate to="/login" />
32
+ );
33
+
34
+ }
35
+
36
  }
37
 
38
  export default PrivateRoutes
server/index.ts CHANGED
@@ -93,7 +93,7 @@ app.use(async (req, res, next) => {
93
 
94
  app.get("/session", (req, res) => {
95
  if(!res.locals.user){
96
- res.status(403);
97
  }
98
  return res.status(200).send(res.locals.user);
99
  })
 
93
 
94
  app.get("/session", (req, res) => {
95
  if(!res.locals.user){
96
+ return res.status(403).send();
97
  }
98
  return res.status(200).send(res.locals.user);
99
  })