/** * Cookie configuration helpers * Automatically uses secure settings in production */ const isProduction = process.env.NODE_ENV === 'production'; /** * Get cookie options for authentication cookies */ export function getAuthCookieOptions() { return { httpOnly: true, secure: isProduction, // HTTPS only in production sameSite: 'lax' as const, maxAge: 60 * 60 * 24 * 7, // 7 days }; } /** * Get cookie options for CSRF tokens * Note: httpOnly is false so the client can read it, but we verify via double-submit pattern */ export function getCsrfCookieOptions() { return { httpOnly: false, // Client needs to read this token for the header secure: isProduction, // HTTPS only in production sameSite: 'lax' as const, maxAge: 60 * 60 * 24, // 24 hours path: '/', // Available on all paths }; } /** * Check if running in production */ export function isProductionEnvironment(): boolean { return isProduction; }