This commit is contained in:
yohlo
2025-08-20 22:35:40 -05:00
commit f51c278cd3
169 changed files with 8173 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
import { getSessionForSSR } from "supertokens-node/custom";
import { ensureSuperTokensBackend } from "../server";
import { logger } from "../";
export async function getSessionForStart(request: Request, options?: { sessionRequired?: boolean }) {
ensureSuperTokensBackend();
try {
const session = await getSessionForSSR(request);
if (session.hasToken) {
return {
hasToken: true,
accessTokenPayload: session.accessTokenPayload,
userId: session.accessTokenPayload?.sub,
sessionHandle: session.accessTokenPayload?.sessionHandle,
};
}
return null;
} catch (error: any) {
logger.error("Session error", error);
if (error.type === "TRY_REFRESH_TOKEN") {
return {
hasToken: false,
needsRefresh: true,
error: 'TRY_REFRESH_TOKEN'
};
}
if (options?.sessionRequired === false) {
return null;
}
throw error;
}
}
export async function verifySession(request: Request, options?: { sessionRequired?: boolean }) {
const session = await getSessionForStart(request, options);
if (!session && options?.sessionRequired !== false) {
throw new Response("Unauthorized", { status: 401 });
}
return session;
}