30 lines
834 B
TypeScript
Executable File
30 lines
834 B
TypeScript
Executable File
import { getSessionCookie } from "better-auth/cookies";
|
|
import { type NextRequest, NextResponse } from "next/server";
|
|
|
|
export async function proxy(request: NextRequest) {
|
|
const sessionCookie = getSessionCookie(request);
|
|
|
|
// THIS IS NOT SECURE!
|
|
// This is the recommended approach to optimistically redirect users
|
|
// We recommend handling auth checks in each page/route
|
|
if (!sessionCookie) {
|
|
const url = new URL("/login", request.url);
|
|
url.searchParams.set(
|
|
"next",
|
|
request.nextUrl.pathname + request.nextUrl.search,
|
|
);
|
|
return NextResponse.redirect(url);
|
|
}
|
|
|
|
return NextResponse.next();
|
|
}
|
|
|
|
export const config = {
|
|
matcher: [
|
|
"/artifact/admin/:path*",
|
|
"/rubgram/admin/:path*",
|
|
"/tl/:path*/:path*/admin",
|
|
"/admin/:path*",
|
|
], // Specify the routes the middleware applies to
|
|
};
|