24 lines
521 B
TypeScript
24 lines
521 B
TypeScript
import { NextAuthOptions } from "next-auth";
|
|
import { getServerSession } from "next-auth";
|
|
import { authOptions } from "./auth";
|
|
|
|
export function getSession() {
|
|
return getServerSession(authOptions);
|
|
}
|
|
|
|
export async function requireAuth() {
|
|
const session = await getSession();
|
|
if (!session?.user) {
|
|
return null;
|
|
}
|
|
return session;
|
|
}
|
|
|
|
export async function requireAdmin() {
|
|
const session = await getSession();
|
|
if (!session?.user || session.user.role !== "ADMIN") {
|
|
return null;
|
|
}
|
|
return session;
|
|
}
|