Spaces:
Runtime error
Runtime error
Commit ·
c5243fe
1
Parent(s): 8830402
added protected routes
Browse files- client/src/App.js +6 -6
- client/src/PrivateRoutes.jsx +31 -20
- server/index.ts +1 -1
client/src/App.js
CHANGED
|
@@ -14,13 +14,13 @@ function App() {
|
|
| 14 |
<Router>
|
| 15 |
<Routes>
|
| 16 |
<Route element={<LoginPage />} path="/login" />
|
| 17 |
-
|
| 18 |
-
<Route element={<ChatPage />} path="/" />
|
| 19 |
-
|
| 20 |
-
|
| 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 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
-
if (isAuth === undefined) {
|
| 17 |
-
return <p>
|
| 18 |
-
Loading ...
|
| 19 |
-
</p>
|
| 20 |
-
}
|
| 21 |
|
| 22 |
-
|
| 23 |
-
|
| 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 |
})
|