5d94572569
Vorbereitung für pod-unabhängige Sessions (k8s-Ziel). Ändert am Live-System NICHTS: AUTH_BACKEND='session' bleibt Default, die neuen Libs sind noch nirgends verdrahtet. - composer eingeführt: firebase/php-jwt ^6.11 + predis/predis ^2.4 (pure PHP, keine Redis-Extension nötig → läuft auf XAMPP wie im Prod-Image). vendor/ committed (kein Composer auf dem Server). - Jwt.php: HS256-Access-Token (issue/verify), decode() IMMER mit explizitem Algorithmus (mitigiert Algorithmus-Confusion). 8/8 Tests grün. - SessionStore.php: predis-gestützter Session/Refresh-Store (sess:<sid>, Sliding-TTL, revoke=DEL) — die widerrufbare Session hinter dem kurzen JWT. - app.php: vendor/autoload (guarded), Konstanten AUTH_BACKEND (Default session), REDIS_URL, JWT_TTL, JWT_REFRESH_TTL. JWT_SECRET bewusst ohne Default. - docker-compose.dev.yml: Redis (+ redis-commander UI) für lokale Dev-Parität. - .env.example um Auth-Block ergänzt. Nächste Phasen: $_SESSION-Zugriffe (293) durch Session:: kanalisieren → Backend-Umschalter in Session.php → doppelgleisiger Cutover → Reporting auf student_id-FK ziehen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
32 lines
1.2 KiB
Bash
32 lines
1.2 KiB
Bash
# GeoGraSim — Environment Configuration
|
|
DB_HOST=localhost
|
|
DB_NAME=geograsim
|
|
DB_USER=root
|
|
DB_PASS=
|
|
DB_PORT=3306
|
|
|
|
# Tile-Proxy-Cache-Verzeichnis (optional; Default: APP_ROOT/data/tiles/)
|
|
# Produktion: persistentes Volume im Container, z.B.
|
|
# TILE_CACHE_DIR=/var/www/html/geograsim/data/tiles/
|
|
|
|
# OpenAI API Key — für DALL-E-Bildgenerierung (nur Dev-Zeit)
|
|
# OPENAI_API_KEY=sk-...
|
|
|
|
# ElevenLabs Sound Effects API — nur für generate-sounds.py (Dev-Zeit)
|
|
# ELEVENLABS_API_KEY=...
|
|
|
|
# ── Auth-Backend (JWT + Redis) ──────────────────────────────────────────
|
|
# 'session' = Legacy PHP-Datei-Sessions (Default, ändert nichts).
|
|
# 'jwt' = JWT-Access-Token (HttpOnly-Cookie) + Redis-Session/Refresh.
|
|
AUTH_BACKEND=session
|
|
|
|
# Signaturschlüssel für JWT (HS256). PFLICHT sobald AUTH_BACKEND=jwt.
|
|
# Erzeugen mit: openssl rand -hex 32
|
|
# Pro Umgebung UNTERSCHIEDLICH (dev ≠ prod). NIEMALS committen.
|
|
# JWT_SECRET=
|
|
|
|
# Redis (Session-/Refresh-Store). Lokal: docker-compose.dev.yml → 127.0.0.1:6379
|
|
REDIS_URL=tcp://127.0.0.1:6379
|
|
# JWT_TTL=900 # Access-Token-Lebensdauer in Sekunden (Default 15 min)
|
|
# JWT_REFRESH_TTL=2592000 # Session/Refresh in Sekunden (Default 30 Tage)
|