19 lines
461 B
TypeScript
19 lines
461 B
TypeScript
import { getServerSession } from "next-auth";
|
|
import { authOptions } from "@/lib/auth/options";
|
|
|
|
export async function requireSession() {
|
|
const session = await getServerSession(authOptions);
|
|
if (!session?.user?.id) {
|
|
throw new Error("UNAUTHORIZED");
|
|
}
|
|
return session;
|
|
}
|
|
|
|
export async function requireAdmin() {
|
|
const session = await requireSession();
|
|
if (session.user.role !== "ADMIN") {
|
|
throw new Error("FORBIDDEN");
|
|
}
|
|
return session;
|
|
}
|