fix: Login schlägt fehl bei HTTP ohne Reverse Proxy (Secure-Cookie)

SESSION_SECURE=false in .env deaktiviert das Secure-Flag für Session-
und CSRF-Cookie. Notwendig wenn die App direkt per HTTP erreichbar ist
(kein Nginx/HTTPS davor). Standard bleibt secure=true in production.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ulsklyc
2026-03-25 09:11:33 +01:00
parent b5bb69ad37
commit f354af0876
2 changed files with 7 additions and 2 deletions
+6 -2
View File
@@ -43,7 +43,10 @@ const sessionMiddleware = session({
name: 'oikos.sid',
cookie: {
httpOnly: true,
secure: process.env.NODE_ENV === 'production',
// SESSION_SECURE=false in .env erlaubt HTTP-Zugriff (z.B. direktes localhost ohne Reverse Proxy)
// Ohne diese Variable: secure=true wenn NODE_ENV=production
secure: process.env.SESSION_SECURE === 'false' ? false
: process.env.NODE_ENV === 'production',
sameSite: 'strict',
maxAge: 1000 * 60 * 60 * 24 * 7, // 7 Tage in ms
},
@@ -130,7 +133,8 @@ router.post('/login', loginLimiter, async (req, res) => {
res.cookie('csrf-token', req.session.csrfToken, {
httpOnly: false,
sameSite: 'strict',
secure: process.env.NODE_ENV === 'production',
secure: process.env.SESSION_SECURE === 'false' ? false
: process.env.NODE_ENV === 'production',
maxAge: 1000 * 60 * 60 * 24 * 7,
});