ray.npc
ayush019.
binouse
siddhantvarma
Swiftzerr
Sekai
kyomster
const { session, hasToken, hasInvalidClaims } = await getSSRSession(); if (!session) { if (!hasToken) { return redirect("/auth"); } if (hasInvalidClaims) { return <SessionAuthForNextJS />; } else { return <TryRefreshComponent />; } }
ilbarbarossa
wrnbrd
kiesker
import { 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;
SuperTokens is an open source authentication solution offering features like: Different types of login: Email / password, Passwordless (OTP or Magic link based).