kiesker
06/26/2023, 3:27 PMimport { SuperTokensConfig, PreBuiltUIList } from './database/auth/supertoken';
import SuperTokens, { SuperTokensWrapper } from "supertokens-auth-react";
import { Routes, BrowserRouter as Router, Route } from "react-router-dom";
import { getSuperTokensRoutesForReactRouterDom } from 'supertokens-auth-react/ui'
import { SessionAuth, SessionContext } from "supertokens-auth-react/recipe/session"
//Components
import Navbar from './components/nav/Navbar';
import NavbarAuth from './components/nav/NavbarAuth';
//Free Routes
import Home from './routes/free/Home';
//Protected User Routes
import Profile from './routes/user/Profile';
//Protecte Admin Routes
SuperTokens.init(SuperTokensConfig);
function App() {
//Here
const check = SessionContext;
return (
<SuperTokensWrapper>
<div className='App app-container'>
<Router>
{check ? <Navbar /> : <NavbarAuth />}
<Routes>
{/* This shows the login UI on "/auth" route */}
{getSuperTokensRoutesForReactRouterDom(require("react-router-dom"), PreBuiltUIList)}
{/* Unprotected route */}
<Route path="/" element={<Home />} />
{/* Unprotected route */}
{/* Protected route Users */}
<Route
path="/profile" element={
/* This protects the "/" route so that it shows
<Home /> only if the user is logged in.
Else it redirects the user to "/auth" */
<SessionAuth>
<Profile />
</SessionAuth>
} />
{/* Protected route Users */}
</Routes>
</Router>
</div>
</SuperTokensWrapper>
);
}
export default App;
kiesker
06/27/2023, 2:22 AMrp_st
06/27/2023, 4:10 AMkiesker
06/27/2023, 2:37 PMrp_st
06/27/2023, 5:55 PMrp_st
06/27/2023, 5:55 PMkiesker
06/28/2023, 2:26 AMfunction App() {
return (
<SuperTokensWrapper>
<div className='App app-container'>
<Router>
{NavbarChecker()}
<Routes>
{/* This shows the login UI on "/auth" route */}
{getSuperTokensRoutesForReactRouterDom(require("react-router-dom"), PreBuiltUIList)}
{/* Unprotected route */}
<Route path="/" element={<Home />} />
<Route path='/About' element={<About />} />
<Route path='/Contact' element={<Contact />} />
{/* Unprotected route */}
{/* Protected route Users */}
<Route
path="/profile" element={
<SessionAuth>
<Profile />
</SessionAuth>
} />
{/* Protected route Users */}
</Routes>
</Router>
</div>
</SuperTokensWrapper>
);
}
export default App;
And this is my navbar checker import { useSessionContext } from 'supertokens-auth-react/recipe/session';
//Navbars
import NavbarAuth from "./NavbarAuth";
import Navbar from "./Navbar";
function NavbarChecker() {
const session = useSessionContext();
//Check if session exists
//Which returns true all the time? Why.
if (session) {
return <NavbarAuth />;
} else {
return <Navbar />;
}
}
export default NavbarChecker;
kiesker
06/28/2023, 2:27 AMrp_st
06/28/2023, 4:23 AMrp_st
06/28/2023, 4:24 AM