Add SuperTokens authentication integration

- Install supertokens-auth-react, supertokens-node, supertokens-web-js
- Create frontend and backend SuperTokens configuration
- Add API route handler for auth endpoints
- Add SuperTokensProvider wrapper in root layout
- Create new auth component with SuperTokens UI
- Configure Google and GitHub OAuth providers
- Ready for SuperTokens core deployment

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-16 15:27:40 -08:00
parent 8612fe7d5b
commit 6764c1feb0
10 changed files with 698 additions and 24 deletions

View File

@@ -0,0 +1,20 @@
"use client";
import { useEffect } from "react";
import { redirectToAuth } from "supertokens-auth-react";
import { ThirdPartyEmailPasswordPreBuiltUI } from "supertokens-auth-react/recipe/thirdpartyemailpassword/prebuiltui";
import { canHandleRoute, getRoutingComponent } from "supertokens-auth-react/ui";
export default function SuperTokensAuthComponent() {
useEffect(() => {
if (!canHandleRoute([ThirdPartyEmailPasswordPreBuiltUI])) {
redirectToAuth();
}
}, []);
if (canHandleRoute([ThirdPartyEmailPasswordPreBuiltUI])) {
return getRoutingComponent([ThirdPartyEmailPasswordPreBuiltUI]);
}
return <div>Loading...</div>;
}

View File

@@ -0,0 +1,18 @@
"use client";
import React from "react";
import { useEffect } from "react";
import SuperTokensReact from "supertokens-auth-react";
import { frontendConfig } from "@/lib/supertokens/frontendConfig";
export const SuperTokensProvider: React.FC<React.PropsWithChildren<{}>> = ({
children,
}) => {
useEffect(() => {
if (typeof window !== "undefined") {
SuperTokensReact.init(frontendConfig());
}
}, []);
return <>{children}</>;
};