Files
formbricks/apps/web/modules/auth/lib/proxy-session.ts
T
2026-04-22 07:35:23 +00:00

44 lines
957 B
TypeScript

import { prisma } from "@formbricks/database";
import { getSessionTokenFromCookieStore } from "./session-cookie";
type TCookieStore = {
get: (name: string) => { value: string } | undefined;
};
type TRequestWithCookies = {
cookies: TCookieStore;
};
export const getSessionTokenFromRequest = (request: TRequestWithCookies): string | null => {
return getSessionTokenFromCookieStore(request.cookies);
};
export const getProxySession = async (request: TRequestWithCookies) => {
const sessionToken = getSessionTokenFromRequest(request);
if (!sessionToken) {
return null;
}
const session = await prisma.session.findUnique({
where: {
sessionToken,
},
select: {
userId: true,
expires: true,
user: {
select: {
isActive: true,
},
},
},
});
if (!session || session.expires <= new Date() || session.user.isActive === false) {
return null;
}
return session;
};