interface IdTokenClaims { email?: unknown; } export function getEmailFromIdToken(idToken: string | undefined): string | undefined { if (!idToken) return undefined; try { const payload = idToken.split('.')[1]; if (!payload) return undefined; const claims = JSON.parse(Buffer.from(payload, 'base64url').toString('utf8')) as IdTokenClaims; return typeof claims.email === 'string' && claims.email.length > 0 ? claims.email : undefined; } catch { return undefined; } }