Connexion
Bon retour parmi nous !
Connectez-vous pour accéder à votre tableau de bord et rester à jour avec les dernières stratégies, analyses opérationnelles et guides exécutifs du secteur retail.
Pas encore membre ? Inscrivez-vous ici.
(() => {
const params = new URLSearchParams(window.location.search);
const redirectTarget = params.get('redirect_to');
// Arrêtez si redirect_to est manquant ou vide
if (!redirectTarget) {
return;
}
let validatedRedirect;
try {
const targetUrl = new URL(redirectTarget, window.location.origin);
// N'autorisez que les URL http/https sur le domaine courant
if (
!['http:', 'https:'].includes(targetUrl.protocol) ||
targetUrl.origin !== window.location.origin
) {
return;
}
validatedRedirect = targetUrl.href;
} catch {
// Arrêtez si redirect_to n'est pas une URL valide
return;
}
const updateRedirectField = () => {
const field = document.querySelector(
'input[type="hidden"][name="redirect_to"]'
);
if (!field) {
return false;
}
field.value = validatedRedirect;
field.setAttribute('value', validatedRedirect);
return true;
};
// Mettez à jour immédiatement si le champ existe déjà
if (updateRedirectField()) {
return;
}
// Sinon, attendez que le formulaire intégré soit chargé
const observer = new MutationObserver(() => {
if (updateRedirectField()) {
observer.disconnect();
}
});
observer.observe(document.documentElement, {
childList: true,
subtree: true
});
})();
