✨ Add login redirection

* ✨ Add login redirection

* 🚑 Fix cross site scripting using server side regex validation

* ✅ Add unit test
This commit is contained in:
Manuel authored and GitHub committed 2023-09-24 16:04:07 +02:00
1 parent 7d7fe6016b
commit 690c627f81
12 files changed
+275 -65

No files matched your search

+34
View File
@@ -0,0 +1,34 @@
import {
GetServerSideProps,
GetServerSidePropsContext,
GetServerSidePropsResult,
PreviewData,
} from 'next';
import { Session } from 'next-auth';
import { ParsedUrlQuery } from 'querystring';
export const checkForSessionOrAskForLogin = (
context: GetServerSidePropsContext<ParsedUrlQuery, PreviewData>,
session: Session | null,
accessCallback: () => boolean,
): GetServerSidePropsResult<any> | undefined => {
if (!session?.user) {
console.log('detected logged out user!');
return {
props: {},
redirect: {
destination: `/auth/login?redirectAfterLogin=${context.resolvedUrl}`,
permanent: false,
},
};
}
if (!accessCallback()) {
return {
props: {},
notFound: true
}
}
return undefined;
};