74 lines
2.3 KiB
TypeScript
74 lines
2.3 KiB
TypeScript
export default defineEventHandler(async (event) => {
|
|
console.log('🔍 Session check requested at:', new Date().toISOString());
|
|
|
|
try {
|
|
const sessionManager = createSessionManager();
|
|
const cookieHeader = getHeader(event, 'cookie');
|
|
|
|
console.log('🍪 Cookie header present:', !!cookieHeader);
|
|
console.log('🍪 Cookie header length:', cookieHeader?.length || 0);
|
|
|
|
const session = sessionManager.getSession(cookieHeader);
|
|
|
|
if (!session) {
|
|
console.log('❌ No valid session found');
|
|
return {
|
|
authenticated: false,
|
|
user: null,
|
|
groups: [],
|
|
member: null
|
|
};
|
|
}
|
|
|
|
console.log('✅ Valid session found for user:', session.user.email);
|
|
console.log('🎯 User tier:', session.user.tier);
|
|
console.log('📋 User groups:', session.user.groups);
|
|
console.log('👤 User data:', {
|
|
id: session.user.id,
|
|
email: session.user.email,
|
|
name: session.user.name,
|
|
firstName: session.user.firstName,
|
|
lastName: session.user.lastName,
|
|
username: session.user.username
|
|
});
|
|
|
|
// Fetch complete member data from database
|
|
let memberData = null;
|
|
try {
|
|
console.log('🔍 Fetching member data for Keycloak ID:', session.user.id);
|
|
const { getMemberByKeycloakId } = await import('~/server/utils/nocodb');
|
|
memberData = await getMemberByKeycloakId(session.user.id);
|
|
|
|
if (memberData) {
|
|
console.log('✅ Member data found:', {
|
|
memberId: memberData.member_id,
|
|
email: memberData.email,
|
|
name: `${memberData.first_name} ${memberData.last_name}`,
|
|
duesStatus: memberData.current_year_dues_paid
|
|
});
|
|
} else {
|
|
console.log('⚠️ No member record found for Keycloak ID:', session.user.id);
|
|
}
|
|
} catch (memberError) {
|
|
console.error('❌ Failed to fetch member data:', memberError);
|
|
// Continue without member data - user can still access basic features
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
authenticated: true,
|
|
user: session.user,
|
|
groups: session.user.groups || [],
|
|
member: memberData
|
|
};
|
|
} catch (error) {
|
|
console.error('❌ Session check error:', error);
|
|
return {
|
|
authenticated: false,
|
|
user: null,
|
|
groups: [],
|
|
member: null
|
|
};
|
|
}
|
|
});
|