Aanmelden
(() => {
const params = new URLSearchParams(window.location.search);
const redirectTarget = params.get('redirect_to');
// Stoppen als redirect_to ontbreekt of leeg is
if (!redirectTarget) {
return;
}
let validatedRedirect;
try {
const targetUrl = new URL(redirectTarget, window.location.origin);
// Alleen http/https-URL's op het huidige domein toestaan
if (
!['http:', 'https:'].includes(targetUrl.protocol) ||
targetUrl.origin !== window.location.origin
) {
return;
}
validatedRedirect = targetUrl.href;
} catch {
// Stoppen als redirect_to geen geldige URL is
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;
};
// Onmiddellijk bijwerken als het veld al bestaat
if (updateRedirectField()) {
return;
}
// Anders wachten tot het ingesloten formulier is geladen
const observer = new MutationObserver(() => {
if (updateRedirectField()) {
observer.disconnect();
}
});
observer.observe(document.documentElement, {
childList: true,
subtree: true
});
})();
