feat(auth): enhance logging for JWT and session handling in auth callbacks
This commit is contained in:
@@ -42,11 +42,28 @@ export const { handlers, auth, signIn, signOut } = NextAuth({
|
|||||||
token.userId = Number(user.id);
|
token.userId = Number(user.id);
|
||||||
token.username = user.name ?? '';
|
token.username = user.name ?? '';
|
||||||
token.role = (user as any).role as string;
|
token.role = (user as any).role as string;
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log('[NextAuth JWT callback] Token set:', {
|
||||||
|
hasAccessToken: !!token.accessToken,
|
||||||
|
role: token.role,
|
||||||
|
username: token.username,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return token;
|
return token;
|
||||||
},
|
},
|
||||||
session({ session, token }) {
|
session({ session, token }) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log('[NextAuth session callback] Token data:', {
|
||||||
|
tokenAccessToken: token.accessToken,
|
||||||
|
tokenRole: token.role,
|
||||||
|
tokenUserId: token.userId,
|
||||||
|
});
|
||||||
|
if (token.accessToken) {
|
||||||
session.accessToken = token.accessToken as string;
|
session.accessToken = token.accessToken as string;
|
||||||
|
} else {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.warn('[NextAuth session callback] WARNING: No accessToken in token!');
|
||||||
|
}
|
||||||
session.user.id = String(token.userId);
|
session.user.id = String(token.userId);
|
||||||
session.user.name = token.username as string;
|
session.user.name = token.username as string;
|
||||||
(session.user as any).role = token.role as string;
|
(session.user as any).role = token.role as string;
|
||||||
|
|||||||
@@ -6,6 +6,19 @@ import { auth } from '../auth';
|
|||||||
*/
|
*/
|
||||||
export async function getAuthHeaders(): Promise<Record<string, string>> {
|
export async function getAuthHeaders(): Promise<Record<string, string>> {
|
||||||
const session = await auth();
|
const session = await auth();
|
||||||
if (!session?.accessToken) return {};
|
// eslint-disable-next-line no-console
|
||||||
|
console.log('[getAuthHeaders] Session data:', {
|
||||||
|
hasSession: !!session,
|
||||||
|
hasAccessToken: !!session?.accessToken,
|
||||||
|
sessionKeys: session ? Object.keys(session) : [],
|
||||||
|
userRole: (session?.user as any)?.role,
|
||||||
|
});
|
||||||
|
if (!session?.accessToken) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.warn('[getAuthHeaders] No accessToken found! Session:', session);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log('[getAuthHeaders] Returning Bearer token');
|
||||||
return { Authorization: `Bearer ${session.accessToken}` };
|
return { Authorization: `Bearer ${session.accessToken}` };
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user