advance
This commit is contained in:
28
lib/auth/requireUser.ts
Normal file → Executable file
28
lib/auth/requireUser.ts
Normal file → Executable file
@@ -1,16 +1,18 @@
|
||||
import { redirect } from "next/navigation";
|
||||
import { supabaseServer } from "@/lib/supabase/server";
|
||||
import { createServerClient } from "@supabase/ssr";
|
||||
import { cookies } from "next/headers";
|
||||
import { db } from "@/lib/prisma";
|
||||
|
||||
export const requireUser = async (redirectTo: string) => {
|
||||
const supabase = await supabaseServer();
|
||||
if (!supabase) {
|
||||
return null;
|
||||
}
|
||||
export async function requireUser() {
|
||||
const cookieStore = await cookies();
|
||||
const supabase = createServerClient(
|
||||
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
||||
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
|
||||
{ cookies: { getAll() { return cookieStore.getAll() } } }
|
||||
);
|
||||
|
||||
const { data } = await supabase.auth.getUser();
|
||||
if (!data.user) {
|
||||
redirect(`/auth/login?redirectTo=${encodeURIComponent(redirectTo)}`);
|
||||
}
|
||||
const { data: { user } } = await supabase.auth.getUser();
|
||||
if (!user) return null;
|
||||
|
||||
return data.user;
|
||||
};
|
||||
const profile = await db.profile.findUnique({ where: { id: user.id } });
|
||||
return profile;
|
||||
}
|
||||
Reference in New Issue
Block a user