import NextAuth, { getServerSession, type NextAuthOptions } from "next-auth"; import AzureADProvider from "next-auth/providers/azure-ad"; /** * Options for NextAuth.js used to configure adapters, providers, callbacks, etc. * * @see https://next-auth.js.org/configuration/options */ export const authOptions: NextAuthOptions = { callbacks: { session: ({ session, token }) => ({ ...session, user: { ...session.user, id: token.sub, }, }), }, providers: [ AzureADProvider({ clientId: process.env.AZURE_AD_CLIENT_ID ?? "", clientSecret: process.env.AZURE_AD_CLIENT_SECRET ?? "", tenantId: process.env.AZURE_AD_TENANT_ID ?? "", }), ], pages: { signIn: "/login", signOut: "/login", error: "/login", }, }; /** * Wrapper for `getServerSession` so that you don't need to import the `authOptions` in every file. * * @see https://next-auth.js.org/configuration/nextjs */ export const getServerAuthSession = () => getServerSession(authOptions); const handler = NextAuth(authOptions); export { handler as GET, handler as POST };