web: added the base for the web project
This commit is contained in:
35
apps/web/src/server/getServerSideProps.ts
Normal file
35
apps/web/src/server/getServerSideProps.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import {
|
||||
type GetServerSidePropsContext,
|
||||
type GetServerSidePropsResult,
|
||||
} from "next";
|
||||
import { getServerAuthSession } from "./auth";
|
||||
|
||||
export function createServerSideProps(
|
||||
cb?: (context: GetServerSidePropsContext) => Promise<any>,
|
||||
) {
|
||||
return async function getServerSideProps(
|
||||
context: GetServerSidePropsContext,
|
||||
): Promise<GetServerSidePropsResult<any>> {
|
||||
const session = await getServerAuthSession(context);
|
||||
|
||||
if(!session) {
|
||||
return {
|
||||
redirect: {
|
||||
destination: "/api/auth/signin",
|
||||
permanent: false,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
const res = await (typeof cb === "function"
|
||||
? cb(context)
|
||||
: Promise.resolve({}));
|
||||
return {
|
||||
...(res ?? {}),
|
||||
props: {
|
||||
session,
|
||||
...(res?.props ?? {}),
|
||||
},
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user