import NextAuth from "next-auth"; import { authOptions } from "@/lib/auth"; const handler = NextAuth({ ...authOptions, debug: true, // Enable debug logging callbacks: { ...authOptions.callbacks, async redirect({ url, baseUrl }) { console.log('Redirect callback:', { url, baseUrl }); // Allows relative callback URLs if (url.startsWith("/")) return `${baseUrl}${url}`; // Allows callback URLs on the same origin else if (new URL(url).origin === baseUrl) return url; return baseUrl; }, async session({ session, token }) { console.log('Session callback:', { sessionBefore: session, token: { ...token, refreshToken: '[REDACTED]' } }); if (token.error) { console.error('Token error:', token.error); throw new Error('RefreshAccessTokenError'); } session.user.id = token.id; session.user.email = token.email; session.user.name = token.name; session.user.role = token.role; console.log('Session after:', { sessionAfter: { ...session, user: { ...session.user, id: '[REDACTED]' } } }); return session; }, }, }); export { handler as GET, handler as POST }; interface JWT { accessToken: string; refreshToken: string; accessTokenExpires: number; } interface Profile { sub?: string; email?: string; name?: string; roles?: string[]; }