Getting 500 server error on production.
Our middleware file (this was updated in the new commit)
import type {NextRequest} from "next/server";
import {NextResponse} from "next/server";
import {validateBetaJWT, validateJWT} from "@/lib/jwtFunctions";
import {isVerified} from "@/lib/emailVerification";
export async function middleware(request: NextRequest) {
const betaToken = request.cookies.get("beta_token")?.value;
const token = request.cookies.get("token")?.value;
if (
request.nextUrl.pathname.startsWith("/api") ||
request.nextUrl.pathname.startsWith("/beta")
) {
return NextResponse.next();
}
if (request.nextUrl.pathname.startsWith("/redirect")) {
const url = request.nextUrl.searchParams.get("url");
try {
if (url) return NextResponse.redirect(url);
else return NextResponse.redirect(`${process.env.WEB_DOMAIN}/`);
} catch (e) {
return NextResponse.redirect(`${process.env.WEB_DOMAIN}/`);
}
}
if (
await validateBetaJWT(betaToken, request.headers.get("x-forwarded-for"))
) {
if (request.nextUrl.pathname.startsWith("/dash")) {
if (token && (await validateJWT(token))) {
if (await isVerified(token)) {
return NextResponse.next();
} else {
return NextResponse.redirect(
`${process.env.WEB_DOMAIN}/verify`
);
}
} else {
const nextPath = encodeURIComponent(request.nextUrl.pathname);
return NextResponse.redirect(
`${process.env.WEB_DOMAIN}/login?next=${nextPath}`
);
}
} else {
return NextResponse.next();
}
} else {
return NextResponse.redirect(`${process.env.WEB_DOMAIN}/beta`);
}
}
export const config = {matcher: "/((?!.*\\.).*)"};