Le /auth/login construisait le redirect_uri avec le schéma http:// en dur et dupliquait l'expression dans login/callback : toute URL d'accès non enregistrée (https, reverse proxy, hostname, port différent) était rejetée par Gitea avec 'Unregistered Redirect URI' — les 2 liens 'Connect Gitea' et 'Register with Gitea' de Workspaces → Gitea Projects étaient touchés. - nouveau helper get_redirect_uri(request) : override explicite OAUTH_REDIRECT_URI (si défini), sinon schéma depuis X-Forwarded-Proto (fallback request scheme) + hôte depuis X-Forwarded-Host (fallback Host) - redirect_uri stocké en session à l'authorize et réutilisé tel quel dans l'échange de code (plus de dérive entre les deux étapes) - même correctif dans GitHubProvider.exchange_code (ignorait le paramètre) - config : oauth_redirect_uri par défaut vide (dynamique) au lieu de localhost:8080 en dur - .env.example documente OAUTH_REDIRECT_URI - 4 tests de régression (host header, X-Forwarded-Proto/Host, override env, URL d'authorize) — 178/179 OK, l'échec restant (test_views_calendar) est pré-existant et dépend de la date
34 lines
955 B
Bash
34 lines
955 B
Bash
# ── Gitea ──
|
|
GITEA_URL=https://git.dracodev.net
|
|
GITEA_TOKEN=change-me
|
|
GITEA_OAUTH_CLIENT_ID=
|
|
GITEA_OAUTH_CLIENT_SECRET=
|
|
GITEA_WEBHOOK_SECRET=
|
|
|
|
# ── GitHub ──
|
|
GITHUB_OAUTH_CLIENT_ID=
|
|
GITHUB_OAUTH_CLIENT_SECRET=
|
|
|
|
# ── OAuth2 ──
|
|
# Laisser VIDE = redirect URI dynamique (dérivée du Host/X-Forwarded-* de la requête).
|
|
# Ne définir QUE si on veut forcer une URI exacte — elle DOIT être enregistrée
|
|
# dans l'application OAuth2 côté Gitea/GitHub (Settings → Applications).
|
|
# Exemple : OAUTH_REDIRECT_URI=https://flowdeck.dracodev.net/auth/callback
|
|
OAUTH_REDIRECT_URI=
|
|
|
|
# ── App ──
|
|
APP_SECRET_KEY=change-me-to-random
|
|
APP_HOST=0.0.0.0
|
|
APP_PORT=8080
|
|
LOG_LEVEL=INFO
|
|
DEFAULT_LANG=fr
|
|
|
|
# ── Database ──
|
|
# SQLite (default): sqlite:////data/flowdeck.db
|
|
# PostgreSQL (optional): postgresql://user:pass@host:5432/flowdeck
|
|
DATABASE_URL=sqlite:////data/flowdeck.db
|
|
|
|
# ── Sync ──
|
|
SYNC_INTERVAL=60
|
|
GITEA_CACHE_TTL=30
|