Files
documenso/packages/lib/server/getUserFromToken.ts
Ephraim Atta-Duncan e3bc41934c Fixes from code review
2023-06-09 03:55:30 +00:00

28 lines
752 B
TypeScript

import { GetServerSidePropsContext, NextApiRequest, NextApiResponse } from "next";
import { NextRequest } from "next/server";
import prisma from "@documenso/prisma";
import { User as PrismaUser } from "@prisma/client";
import { getToken } from "next-auth/jwt";
export async function getUserFromToken(
req: GetServerSidePropsContext["req"] | NextRequest | NextApiRequest,
res?: NextApiResponse // TODO: Remove this optional parameter
): Promise<PrismaUser | null> {
const token = await getToken({ req });
const tokenEmail = token?.email?.toString();
if (!token || !tokenEmail) {
return null;
}
const user = await prisma.user.findFirst({
where: { email: tokenEmail },
});
if (!user) {
return null;
}
return user;
}