Files
MineGeo/proxy.ts

30 lines
1.0 KiB
TypeScript

import { createServerClient } from "@supabase/ssr";
import { NextRequest, NextResponse } from "next/server";
export async function proxy(request: NextRequest) {
let response = NextResponse.next({ request });
if (!process.env.NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY) return response;
const client = createServerClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY,
{
cookies: {
getAll: () => request.cookies.getAll(),
setAll: (values) => {
values.forEach(({ name, value }) => request.cookies.set(name, value));
response = NextResponse.next({ request });
values.forEach(({ name, value, options }) =>
response.cookies.set(name, value, options),
);
},
},
},
);
await client.auth.getUser();
return response;
}
export const config = {
matcher: [
"/((?!_next/static|_next/image|favicon.ico|tools/|fonts/|images/|.*\\.(?:svg|png|jpg|jpeg|gif|webp|ico|ttf|woff|woff2|jar)$).*)",
],
};