diff --git a/apps/web/pages/api/documents/index.ts b/apps/web/pages/api/documents/index.ts index 25ec6a841..5ff092d5d 100644 --- a/apps/web/pages/api/documents/index.ts +++ b/apps/web/pages/api/documents/index.ts @@ -45,7 +45,7 @@ async function postHandler(req: NextApiRequest, res: NextApiResponse) { } async function getHandler(req: NextApiRequest, res: NextApiResponse) { - let user = await getUserFromToken(req, res); + const user = await getUserFromToken(req, res); if (!user) return; const documents = await getDocumentsForUserFromToken({ req: req, res: res }); diff --git a/apps/web/pages/dashboard.tsx b/apps/web/pages/dashboard.tsx index d63f0cf0f..1621c501a 100644 --- a/apps/web/pages/dashboard.tsx +++ b/apps/web/pages/dashboard.tsx @@ -128,7 +128,13 @@ function getStat(name: string, props: any) { export async function getServerSideProps(context: any) { const user = await getUserFromToken(context.req, context.res); - if (!user) return; + if (!user) + return { + redirect: { + destination: "/login", + permanent: false, + }, + }; const documents: any[] = await getDocumentsForUserFromToken(context); diff --git a/apps/web/pages/documents/[id]/index.tsx b/apps/web/pages/documents/[id]/index.tsx index 4610bc5f0..3076fc632 100644 --- a/apps/web/pages/documents/[id]/index.tsx +++ b/apps/web/pages/documents/[id]/index.tsx @@ -109,7 +109,13 @@ function formatDocumentStatus(status: DocumentStatus) { export async function getServerSideProps(context: any) { const user = await getUserFromToken(context.req, context.res); - if (!user) return; + if (!user) + return { + redirect: { + destination: "/login", + permanent: false, + }, + }; const { id: documentId } = context.query; diff --git a/apps/web/pages/documents/[id]/recipients.tsx b/apps/web/pages/documents/[id]/recipients.tsx index 8a833e436..540a658af 100644 --- a/apps/web/pages/documents/[id]/recipients.tsx +++ b/apps/web/pages/documents/[id]/recipients.tsx @@ -442,7 +442,13 @@ RecipientsPage.getLayout = function getLayout(page: ReactElement) { export async function getServerSideProps(context: any) { const user = await getUserFromToken(context.req, context.res); - if (!user) return; + if (!user) + return { + redirect: { + destination: "/login", + permanent: false, + }, + }; const { id: documentId } = context.query; const document: PrismaDocument = await getDocument( diff --git a/packages/lib/server/getUserFromToken.ts b/packages/lib/server/getUserFromToken.ts index f1c8dad34..6f5f1d129 100644 --- a/packages/lib/server/getUserFromToken.ts +++ b/packages/lib/server/getUserFromToken.ts @@ -2,6 +2,7 @@ import prisma from "@documenso/prisma"; import { User as PrismaUser } from "@prisma/client"; import { NextApiRequest, NextApiResponse } from "next"; import { getToken } from "next-auth/jwt"; +import { signOut } from "next-auth/react"; export async function getUserFromToken( req: NextApiRequest, @@ -20,11 +21,9 @@ export async function getUserFromToken( return null; } - let user = await prisma.user.findFirstOrThrow({ + const user = await prisma.user.findFirst({ where: { email: tokenEmail }, }); - if (user) return user; - if (!user) res.status(401).send("No user found for token."); - return null; + return user; }