// lib/auth-check.ts import { getServerSession } from 'next-auth'; import { authOptions } from '@/lib/auth-options'; import { redirect } from 'next/navigation'; /** * Require a logged-in user. If not logged in, redirect to /login. * Returns the session object when present. * * Use this helper from server components / app-route handlers. */ export async function requireUser(redirectTo = '/login') { const session = await getServerSession(authOptions); if (!session?.user?.email) { // server-side redirect (preferred for pages) redirect(redirectTo); } return session; } /** * Use this variant for API routes where you want JSON 401/403 instead of redirect. */ export async function requireUserApi() { const session = await getServerSession(authOptions); if (!session?.user?.email) { const err: any = new Error('Unauthorized'); err.status = 401; throw err; } return session; }