Corrige le logo cassé dans l'email d'invitation derrière un reverse proxy

Les URL absolues de l'email (logo, lien d'inscription) étaient construites
côté serveur à partir de req.protocol : derrière un reverse proxy HTTPS
(sans TRUST_PROXY), le serveur voit « http » et produit des URL en contenu
mixte que le navigateur bloque — logo cassé dans l'aperçu et dans les
webmails. Le frontend transmet désormais window.location.origin (?base=),
c'est-à-dire l'adresse publique exacte vue par l'admin ; le serveur la
valide (http/https uniquement) et ne garde l'hôte de la requête qu'en
secours.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fkg15RCxNgUys4ru73He2o
This commit is contained in:
Claude committed 2026-07-14 07:18:14 +00:00
1 parent 02cfa8f8bc
commit d4923e9dfc
2 files changed
+20 -5

No files matched your search

+6 -1
View File
@@ -326,7 +326,12 @@ function EmailModal({ renc, onClose }) {
const [copied, setCopied] = useState('');
useEffect(() => {
api.get(`/api/admin/rencontres/${renc.id}/email`).then(setData).catch((e) => setError(e.message));
// The browser knows the site's real public origin (scheme included) —
// the server can't always tell behind a reverse proxy.
api
.get(`/api/admin/rencontres/${renc.id}/email?base=${encodeURIComponent(window.location.origin)}`)
.then(setData)
.catch((e) => setError(e.message));
}, [renc.id]);
const flash = (what) => {