var oktaSignIn; var errorKey; var contextObj = {}; var formHasError = false; var oktaSignInScriptPromise = null; var oktaSignInScriptUrl = 'https://global.oktacdn.com/okta-signin-widget/7.1.1/js/okta-sign-in.min.js'; const documentUrls = { 'login_guide': '/ma/pdf/'+getLocaleSubString()+'/GIH240723_MFA_Customer_Area_Log_In_Guide_1124.pdf', 'login_faq': '/ma/pdf/'+getLocaleSubString()+'/GIH240729_FAQ_Customer_Area_Log_In_1124.pdf' }; const customErrorMessages = { 'forgot-password': { 'en_US' : { 'errors.E0000004': 'The email address you entered does not match our records. Please try again.' }, 'de_DE' : { 'errors.E0000004': 'Die eingegebene E-Mail-Adresse stimmt nicht mit unseren Daten überein. Bitte versuchen Sie es noch einmal.' }, 'es_ES' : { 'errors.E0000004': 'La dirección de correo electrónico que ha introducido no coincide con nuestros registros. Inténtelo de nuevo.' }, 'fr_FR' : { 'errors.E0000004': "L'adresse e-mail que vous avez saisie n’est pas identifiée par notre système. Veuillez réessayer." }, 'nl_NL' : { 'errors.E0000004': 'Het e-mailadres dat u hebt ingevoerd, komt niet overeen met onze gegevens. Probeer het opnieuw.' } }, 'mfa-verify-passcode': { 'en_US' : { 'oie.tooManyRequests': 'The current code is no longer valid. Please click on \'Back to sign in\' and start the process again.' }, 'de_DE' : { 'oie.tooManyRequests': 'Der aktuelle Code ist nicht mehr gültig. Bitte klicken Sie auf „Zurück zur Anmeldung“ und wiederholen Sie den Vorgang.' }, 'es_ES' : { 'oie.tooManyRequests': 'El código actual ya no es válido. Haz clic en “Volver para iniciar sesión” para empezar el proceso de nuevo.' }, 'fr_FR' : { 'oie.tooManyRequests': "Le code actuel n’est plus valide. Veuillez cliquer sur appuyer sur « Retour pour vous connecter » et recommencer la procédure." }, 'nl_NL' : { 'oie.tooManyRequests': 'De huidige code is niet langer geldig. Klik op \'Terug naar de inlogpagina\' en herhaal de procedure.' } }, 'password-policy': { 'en_US' : { 'password.policy': 'Your password must be between 8 and 13 characters length, a lowercase letter, an uppercase letter, a number, no parts of your username, does not include your first name, does not include your last name. Your password cannot be any of your last 8 password(s). No special characters are allowed.' }, 'de_DE' : { 'password.policy': 'Ihr Passwort muss zwischen 8 und 13 Zeichen lang sein, einen Kleinbuchstaben, einen Großbuchstaben und eine Zahl enthalten, es darf keine Teile Ihres Benutzernamens enthalten, es enthält nicht Ihren Vornamen, es enthält nicht Ihren Nachnamen. Ihr Passwort kann keines Ihrer letzten 8 Passwörter sein. Sonderzeichen sind nicht zulässig.' }, 'es_ES' : { 'password.policy': 'Su contraseña debe tener entre 8 y 13 caracteres, una letra minúscula, una letra mayúscula y un número. No puede incluir ninguna parte de su nombre de usuario, ni su nombre, ni su apellido. Su contraseña no puede ser ninguna de sus 8 últimas contraseñas. No se permiten caracteres especiales.' }, 'fr_FR' : { 'password.policy': "Votre mot de passe doit comporter entre 8 et 13 caractères, une lettre minuscule, une lettre majuscule, un chiffre, aucune partie de votre nom d’utilisateur. Il ne doit comprendre ni votre prénom ni votre nom de famille. Votre mot de passe ne peut pas être un de vos 8 derniers mots de passe. Aucun caractère spécial n’est autorisé." }, 'nl_NL' : { 'password.policy': 'Uw wachtwoord moet tussen 8 en 13 tekens lang zijn en moet een kleine letter, een hoofdletter en een cijfer bevatten. Het mag geen delen van uw gebruikersnaam, uw voornaam of uw achternaam bevatten. Uw wachtwoord mag geen van uw laatste 8 wachtwoorden zijn. Er zijn geen speciale tekens toegestaan.' } }, 'forget-password-instructions': { 'en_US' : { 'password.policy.instructions': 'To reset your password, please enter your email address and click ‘Next’.' }, 'de_DE' : { 'password.policy.instructions': 'Um Ihr Passwort zurückzusetzen, geben Sie bitte Ihre E-Mail-Adresse ein und klicken Sie auf ‚Weiter‘.' }, 'es_ES' : { 'password.policy.instructions': 'Para restablecer su contraseña, introduzca su dirección de correo electrónico y haga clic en Siguiente' }, 'fr_FR' : { 'password.policy.instructions': "Pour réinitialiser votre mot de passe, veuillez entrer votre adresse e-mail et cliquer sur « Suivant »" }, 'nl_NL' : { 'password.policy.instructions': 'Om uw wachtwoord te resetten, voert u uw e-mailadres in en klikt u op ‘Volgende’.' } }, 'field-cannot-be-blank': { 'en_US' : { 'field.cannot.be.blank' : 'This field cannot be left blank' }, 'de_DE' : { 'field.cannot.be.blank' : 'Dieses Feld darf nicht leer bleiben.' }, 'es_ES' : { 'field.cannot.be.blank' : 'Este campo no puede dejarse en blanco' }, 'fr_FR' : { 'field.cannot.be.blank' : "Ce champ ne peut pas être vide" }, 'nl_NL' : { 'field.cannot.be.blank' : 'Dit veld mag niet leeg blijven' } }, 'password-requirement-not-met': { 'en_US' : { 'password.requirements.not.met' : 'Password requirements were not met' }, 'de_DE' : { 'password.requirements.not.met' : 'Passwort-Anforderungen werden nicht erfüllt.' }, 'es_ES' : { 'password.requirements.not.met' : 'No se han cumplido los requisitos de contraseña' }, 'fr_FR' : { 'password.requirements.not.met' : "Les exigences liées au mot de passe n'ont pas été respectées" }, 'nl_NL' : { 'password.requirements.not.met' : 'Er werd niet voldaan aan de wachtwoordvereisten' } } }; function ensureOktaSignInLoaded() { if (typeof OktaSignIn !== 'undefined') { return Promise.resolve(); } if (oktaSignInScriptPromise) { return oktaSignInScriptPromise; } oktaSignInScriptPromise = new Promise(function (resolve, reject) { var existingScript = document.querySelector('script[src="' + oktaSignInScriptUrl + '"]'); if (existingScript) { existingScript.addEventListener('load', function () { resolve(); }); existingScript.addEventListener('error', function () { reject(new Error('Failed to load Okta Sign-In script')); }); return; } var scriptEl = document.createElement('script'); scriptEl.src = oktaSignInScriptUrl; scriptEl.async = true; scriptEl.onload = function () { resolve(); }; scriptEl.onerror = function () { reject(new Error('Failed to load Okta Sign-In script')); }; document.head.appendChild(scriptEl); }); return oktaSignInScriptPromise; } function initialiseLoginWidget(oIssurerUri, oRedirectUri, oClientId, caPostLoginPerformUri, caPostLoginRedirectUri) { oktaSignIn = initialiseOktaSignIn(oIssurerUri, oRedirectUri, oClientId); var params; try { params = new URLSearchParams(window.location.search); } catch(e){ params = { get: function(){return null;} }; } var timeoutRedirect = (params.get('reason') === 'timeout'); function forceInteractiveLogin(){ // Always show widget after explicitly ending Okta session so credentials are required oktaSignIn.showSignInToGetTokens({ el: '#okta-login-container' }) .then(function (tokens) { oktaSignIn.authClient.tokenManager.setTokens(tokens); oktaSignIn.remove(); const idToken = tokens.idToken; setupCookiesOnBackEnd(caPostLoginPerformUri, caPostLoginRedirectUri, idToken); }) .catch(function(){ /* user closed widget or error – remain on page */ }); } if(timeoutRedirect){ // Clear any cached tokens try { oktaSignIn.authClient.tokenManager.clear(); } catch(e){} // Terminate Okta browser session so widget prompts (avoid silent SSO) try { oktaSignIn.authClient.closeSession() .finally(function(){ forceInteractiveLogin(); }); } catch(e){ // Fallback if closeSession not available forceInteractiveLogin(); } } else { // Normal (non-timeout) path keeps prior behavior: attempt to detect existing session oktaSignIn.authClient.token.getUserInfo().then( function () { /* If already logged in via Okta session, do nothing until user interacts */ }, function () { forceInteractiveLogin(); } ); } var loaderEl = document.querySelector('#loader'); if(loaderEl){ loaderEl.style.display = 'none'; } extra_watchWidgetDivChanged(); } function initialiseLogoutWidget(isOktaInitialised, oIssurerUri, oRedirectUri, oClientId) { if (isOktaInitialised) { oktaSignIn = initialiseOktaSignIn(oIssurerUri, oRedirectUri, oClientId); oktaSignIn.authClient.token.getUserInfo().then( function (user) { //do nothing call to initialise all required cookies from okta domain }, function (error) { //do nothing } ); } } function initialiseOktaSignIn(oIssurerUri, oRedirectUri, oClientId) { var urlLang = getLanguage(); if(oIssurerUri !== null && oRedirectUri !== null && oClientId !== null){ var oktaConfig = { issuer: oIssurerUri, redirectUri: oRedirectUri, clientId: oClientId, language: urlLang, onSessionExpired: () => { localStorage.clear(); location.reload(); }, i18n: { en: { 'primaryauth.username.placeholder': 'Email Address', 'oie.user.profile.login': 'Email Address', 'password.forgot.email.or.username.placeholder': 'Email Address', 'password.expired.title.generic': 'Reset your Password', 'password.expired.submit': 'Reset Password', 'password.reset' : 'Reset Password', 'password.reset.title.generic': 'Forgot your password?', 'oie.password.confirmPasswordLabel' : 'Re-enter password', 'oie.password.newPasswordLabel' : 'New password', 'oie.email.verify.primaryButton': 'Send code', 'oie.email.mfa.title': 'Check your email inbox.', 'mfa.challenge.enterCode.placeholder': 'Enter verification code sent to your email', 'oie.email.verify.alternate.show.verificationCode.text': 'Enter verification code sent to your email', 'oie.email.verify.alternate.instructions': ' ', 'oie.email.verify.alternate.verificationCode.instructions': ' ', 'oie.email.verify.alternate.magicLinkToEmailAddress': 'Please enter the verification code below to continue. <$1>{0}$1>', 'oie.email.challenge.mfa.title': 'Get your verification code.', 'oie.email.verify.subtitle.text.with.email': 'Click ‘Send code’ to receive a verification code to <$1>{0}$1>.', 'oie.email.verify.subtitle.text.without.email': ' ', 'errors.E0000004' : 'The email address and/or password you entered does not match our records. Please try again.', 'oform.errorbanner.title' : 'Email address and Password are required.', 'signin': 'Log in', 'primaryauth.submit': 'Log in', 'oie.primaryauth.submit': 'Log in', 'error.auth.lockedOut' : 'Your account is locked for 60 minutes. Please wait and try to login again.', 'errors.E0000119' : 'Your account is locked for 60 minutes. Please wait and try to login again.', 'primaryauth.password.placeholder' : 'Password', 'model.validation.field.blank' : 'This field cannot be left blank', 'forgotpassword' : 'Forgot password?', 'error.expired.session' : 'Your session has expired. Please try to log in again.', 'password.error.match' : 'New passwords must match', 'registration.error.password.passwordRequirementsNotMet' : 'Password requirements were not met', 'goback' : 'Back to sign in', 'oform.next' : 'Next', 'oform.verify' : 'Verify', 'mfa.challenge.verify' : 'Verify', 'oie.enroll.okta_verify.email.notReceived' : 'Haven\'t received an email? Send again', 'email.code.not.received' : 'Haven\'t received an email? ', 'email.button.resend': 'Send again', 'idx.invalid.device.code' : 'Invalid code. Try again.', 'api.authn.error.PASSCODE_INVALID' : 'Invalid code. Try again.', 'password.complexity.requirements.header': 'Password requirements:', 'password.common': 'This password was found in a list of commonly used passwords. Please try another password.', 'oie.email.verify.alternate.magicLinkToYourEmail':'We have sent a verification email to your registered email address.', }, de: { 'primaryauth.username.placeholder': 'E-Mail-Adresse', 'oie.user.profile.login': 'E-Mail-Adresse', 'password.forgot.email.or.username.placeholder': 'E-Mail-Adresse', 'password.expired.title.generic': 'Passwort zurücksetzen', 'password.expired.submit': 'Passwort zurücksetzen', 'password.reset' : 'Passwort zurücksetzen', 'password.reset.title.generic': 'Passwort vergessen?', 'oie.password.confirmPasswordLabel' : 'Passwort erneut eingeben', 'oie.password.newPasswordLabel' : 'Neues Passwort', 'oie.email.verify.primaryButton': 'Code senden', 'oie.email.mfa.title': 'Überprüfen Sie Ihren E-Mail-Posteingang.', 'mfa.challenge.enterCode.placeholder': 'Geben Sie den Bestätigungscode ein, der an Ihre E-Mail gesendet wurde.', 'oie.email.verify.alternate.show.verificationCode.text': 'Geben Sie den Bestätigungscode ein, der an Ihre E-Mail gesendet wurde.', 'oie.email.verify.alternate.instructions': ' ', 'oie.email.verify.alternate.verificationCode.instructions': ' ', 'oie.email.verify.alternate.magicLinkToEmailAddress': 'Bitte geben Sie den Bestätigungscode unten ein, um fortzufahren. <$1>{0}$1>', 'oie.email.challenge.mfa.title': 'Bestätigungscode anfordern', 'oie.email.verify.subtitle.text.with.email': 'Klicken Sie auf ‚Code senden‘, um einen Bestätigungscode an <$1>{0}$1> zu erhalten.', 'forgotpassword' : 'Passwort vergessen?', 'errors.E0000004' : 'Die eingegebene E-Mail-Adresse und/oder das Passwort stimmen nicht mit unseren Daten überein. Bitte versuchen Sie es noch einmal.', 'oform.errorbanner.title' : 'E-Mail-Adresse und Passwort sind erforderlich.', 'signin': 'Login', 'primaryauth.submit': 'Login', 'oie.primaryauth.submit': 'Login', 'error.auth.lockedOut' : 'Das Konto ist für 60 Minuten gesperrt. Bitte warten Sie und versuchen Sie dann, sich erneut anzumelden.', 'errors.E0000119' : 'Das Konto ist für 60 Minuten gesperrt. Bitte warten Sie und versuchen Sie dann, sich erneut anzumelden.', 'primaryauth.password.placeholder' : 'Passwort', 'model.validation.field.blank' : 'Dieses Feld darf nicht leer bleiben.', 'error.expired.session' : 'Ihre Sitzung ist abgelaufen. Bitte versuchen Sie, sich erneut anzumelden.', 'password.error.match' : 'Neue Passwörter müssen übereinstimmen.', 'registration.error.password.passwordRequirementsNotMet' : 'Passwort-Anforderungen werden nicht erfüllt.', 'goback' : 'Zurück zur Anmeldung', 'oform.next' : 'Weiter', 'oform.verify' : 'Bestätigen', 'mfa.challenge.verify' : 'Bestätigen', 'oie.enroll.okta_verify.email.notReceived' : 'Sie haben keine E-Mail erhalten? Erneut senden', 'email.code.not.received' : 'Sie haben keine E-Mail erhalten?', 'email.button.resend': 'Erneut senden', 'idx.invalid.device.code' : 'Ungültiger Code. Versuchen Sie es noch einmal.', 'api.authn.error.PASSCODE_INVALID' : 'Ungültiger Code. Versuchen Sie es noch einmal.', 'password.complexity.requirements.header': 'Passwortanforderungen:', 'password.common': 'Dieses Passwort wurde in einer Liste häufig verwendeter Passwörter gefunden. Bitte verwenden Sie ein anderes Passwort.', 'oie.email.verify.subtitle.text.without.email': ' ', 'oie.email.verify.alternate.magicLinkToYourEmail':'Wir haben einen Bestätigungscode an Ihre registrierte E-Mail-Adresse gesendet', }, nl: { 'primaryauth.username.placeholder': 'E-mailadres', 'oie.user.profile.login': 'E-mailadres', 'password.forgot.email.or.username.placeholder': 'E-mailadres', 'password.expired.title.generic': 'Uw wachtwoord resetten', 'password.expired.submit': 'Wachtwoord resetten', 'password.reset' : 'Wachtwoord resetten', 'password.reset.title.generic': 'Uw wachtwoord vergeten?', 'oie.password.confirmPasswordLabel' : 'Wachtwoord opnieuw invoeren', 'oie.password.newPasswordLabel' : 'Nieuw wachtwoord', 'oie.email.verify.primaryButton': 'Code verzenden', 'oie.email.mfa.title': 'Controleer uw mailbox.', 'mfa.challenge.enterCode.placeholder': 'Voer de verificatiecode in die naar uw e-mailadres is gestuurd', 'oie.email.verify.alternate.show.verificationCode.text': 'Voer de verificatiecode in die naar uw e-mailadres is gestuurd', 'oie.email.verify.alternate.instructions': ' ', 'oie.email.verify.alternate.verificationCode.instructions': ' ', 'oie.email.verify.alternate.magicLinkToEmailAddress': 'Voer hieronder de verificatiecode in om door te gaan. <$1>{0}$1>', 'oie.email.challenge.mfa.title': 'Ontvang uw verificatiecode.', 'oie.email.verify.subtitle.text.with.email': 'Klik op ‘Code verzenden’ om een verificatiecode te ontvangen op <$1>{0}$1>.', 'forgotpassword' : 'Wachtwoord vergeten?', 'errors.E0000004' : 'Het e-mailadres en/of wachtwoord dat u hebt ingevoerd, komt niet overeen met onze gegevens. Probeer het opnieuw.', 'oform.errorbanner.title' : 'E-mailadres en wachtwoord zijn vereist.', 'signin': 'Aanmelden', 'primaryauth.submit': 'Aanmelden', 'oie.primaryauth.submit': 'Aanmelden', 'error.auth.lockedOut' : 'Uw account is gedurende 60 minuten geblokkeerd. Wacht even en probeer opnieuw aan te melden.', 'errors.E0000119' : 'Uw account is gedurende 60 minuten geblokkeerd. Wacht even en probeer opnieuw aan te melden.', 'primaryauth.password.placeholder' : 'Wachtwoord', 'model.validation.field.blank' : 'Dit veld mag niet leeg blijven', 'error.expired.session' : 'Uw sessie is verlopen. Probeer opnieuw aan te melden.', 'password.error.match' : 'Nieuwe wachtwoorden moeten overeenkomen', 'registration.error.password.passwordRequirementsNotMet' : 'Er werd niet voldaan aan de wachtwoordvereisten', 'goback' : 'Terug naar de inlogpagina', 'oform.next' : 'Volgende', 'oform.verify' : 'Verifiëren', 'mfa.challenge.verify' : 'Verifiëren', 'oie.enroll.okta_verify.email.notReceived' : 'Hebt u geen e-mail ontvangen? Opnieuw verzenden', 'email.code.not.received' : 'Hebt u geen e-mail ontvangen?', 'email.button.resend': 'Opnieuw verzenden', 'idx.invalid.device.code' : 'Ongeldige code. Probeer het opnieuw.', 'api.authn.error.PASSCODE_INVALID' : 'Ongeldige code. Probeer het opnieuw.', 'password.complexity.requirements.header': 'Wachtwoordvereisten:', 'password.common': 'Dit wachtwoord maakt deel uit van een lijst met veelgebruikte wachtwoorden. Probeer een ander wachtwoord.', 'oie.email.verify.subtitle.text.without.email': ' ', 'oie.email.verify.alternate.magicLinkToYourEmail':'We hebben een verificatie-e-mail gestuurd naar uw geregistreerde e-mailadres.', }, es: { 'primaryauth.username.placeholder': 'Dirección de correo electrónico', 'oie.user.profile.login': 'Dirección de correo electrónico', 'password.forgot.email.or.username.placeholder': 'Dirección de correo electrónico', 'password.expired.title.generic': ' Restablezca su contraseña', 'password.expired.submit': 'Restablecer la contraseña', 'password.reset' : 'Restablecer la contraseña', 'password.reset.title.generic': '¿No recuerda la contraseña?', 'oie.password.confirmPasswordLabel' : 'Vuelva a introducir la contraseña', 'oie.password.newPasswordLabel' : 'Contraseña nueva', 'oie.email.verify.primaryButton': 'Enviar código', 'oie.email.mfa.title': 'Compruebe su bandeja de entrada.', 'mfa.challenge.enterCode.placeholder': 'Introduzca el código de verificación enviado a su correo electrónico', 'oie.email.verify.alternate.show.verificationCode.text': 'Introduzca el código de verificación enviado a su correo electrónico', 'oie.email.verify.alternate.instructions': ' ', 'oie.email.verify.alternate.verificationCode.instructions': ' ', 'oie.email.verify.alternate.magicLinkToEmailAddress': 'Introduzca el siguiente código de verificación para continuar. <$1>{0}$1>', 'oie.email.challenge.mfa.title': ' Consiga su código de verificación.', 'oie.email.verify.subtitle.text.with.email': 'Haga clic en Enviar código para recibir un código de verificación en <$1>{0}$1>.', 'forgotpassword' : '¿Ha olvidado la contraseña?', 'errors.E0000004' : 'La dirección de correo electrónico o la contraseña que ha introducido no coinciden con nuestros registros. Inténtelo de nuevo.', 'oform.errorbanner.title' : 'La dirección de correo electrónico y la contraseña son obligatorios.', 'signin': 'Iniciar sesión', 'primaryauth.submit': 'Iniciar sesión', 'oie.primaryauth.submit': 'Iniciar sesión', 'error.auth.lockedOut' : 'Su cuenta está bloqueada durante 60 minutos. Espere e intente volver a iniciar sesión.', 'errors.E0000119' : 'Su cuenta está bloqueada durante 60 minutos. Espere e intente volver a iniciar sesión.', 'primaryauth.password.placeholder' : 'Contraseña', 'model.validation.field.blank' : 'Este campo no puede dejarse en blanco', 'error.expired.session' : 'Su sesión ha caducado. Intente iniciar sesión de nuevo.', 'password.error.match' : 'Las contraseñas nuevas deben coincidir', 'registration.error.password.passwordRequirementsNotMet' : 'No se han cumplido los requisitos de contraseña', 'goback' : 'Volver para iniciar sesión', 'oform.next' : 'Siguiente', 'oform.verify' : 'Verificar', 'mfa.challenge.verify' : 'Verificar', 'oie.enroll.okta_verify.email.notReceived' : '¿No ha recibido un correo electrónico? Enviar de nuevo', 'email.code.not.received' : '¿No ha recibido un correo electrónico?', 'email.button.resend': 'Enviar de nuevo', 'idx.invalid.device.code' : 'Código no válido. Inténtelo de nuevo.', 'api.authn.error.PASSCODE_INVALID' : 'Código no válido. Inténtelo de nuevo.', 'password.complexity.requirements.header': 'Requisitos de contraseña:', 'password.common': 'La contraseña se encontró en una lista de contraseñas utilizadas habitualmente. Pruebe con otra contraseña. ', 'oie.email.verify.subtitle.text.without.email': ' ', 'oie.email.verify.alternate.magicLinkToYourEmail':'Hemos enviado un correo electrónico de verificación a su dirección de correo electrónico registrada.', }, fr: { 'primaryauth.username.placeholder': 'Adresse e-mail', 'oie.user.profile.login': 'Adresse e-mail', 'password.forgot.email.or.username.placeholder': 'Adresse e-mail', 'password.expired.title.generic': 'Réinitialiser votre mot de passe', 'password.expired.submit': 'Réinitialiser le mot de passe', 'password.reset' : 'Réinitialiser votre mot de passe', 'password.reset.title.generic': 'Mot de passe oublié ?', 'oie.password.confirmPasswordLabel' : 'Réintroduire le mot de passe', 'oie.password.newPasswordLabel' : 'Nouveau mot de passe', 'oie.email.verify.primaryButton': 'Envoyer le code', 'oie.email.mfa.title': 'Vérifiez votre boîte mail.', 'mfa.challenge.enterCode.placeholder': 'Saisissez le code de vérification envoyé à votre adresse e-mail', 'oie.email.verify.alternate.show.verificationCode.text': 'Saisissez le code de vérification envoyé à votre adresse e-mail', 'oie.email.verify.alternate.instructions': ' ', 'oie.email.verify.alternate.verificationCode.instructions': ' ', 'oie.email.verify.alternate.magicLinkToEmailAddress': 'Veuillez saisir le code de vérification ci-dessous pour continuer. <$1>{0}$1>', 'oie.email.challenge.mfa.title': 'Obtenez votre code de vérification.', 'oie.email.verify.subtitle.text.with.email': 'Cliquez sur « Envoyer le code » pour recevoir un code de vérification sur <$1>{0}$1>.', 'forgotpassword' : 'Mot de passe oublié ?', 'errors.E0000004' : 'L’adresse e-mail et/ou le mot de passe que vous avez saisis ne sont pas identifiés par notre système. Veuillez réessayer.', 'oform.errorbanner.title' : 'L’adresse e-mail et le mot de passe sont obligatoires.', 'signin': 'Connexion', 'primaryauth.submit': 'Connexion', 'oie.primaryauth.submit': 'Connexion', 'error.auth.lockedOut' : 'Votre compte est bloqué pendant 60 minutes. Veuillez patienter et réessayer à nouveau.', 'errors.E0000119' : 'Votre compte est bloqué pendant 60 minutes. Veuillez patienter et réessayer à nouveau.', 'primaryauth.password.placeholder' : 'Mot de passe', 'model.validation.field.blank' : 'Ce champ ne peut pas être vide', 'error.expired.session' : 'Votre session a expiré. Veuillez essayer de vous reconnecter.', 'password.error.match' : 'Les nouveaux mots de passe doivent correspondre', 'registration.error.password.passwordRequirementsNotMet' : 'Les exigences liées au mot de passe n\'ont pas été respectées', 'goback' : 'Retour pour vous connecter', 'oform.next' : 'Suivant', 'oform.verify' : 'Vérifier', 'mfa.challenge.verify' : 'Vérifier', 'oie.enroll.okta_verify.email.notReceived' : 'Vous n\'avez pas reçu d\'e-mail ? Opnieuw verzenden', 'email.code.not.received' : 'Vous n\'avez pas reçu d\'e-mail ? ', 'email.button.resend': 'Envoyer à nouveau', 'idx.invalid.device.code' : 'Code non valide. Réessayer.', 'api.authn.error.PASSCODE_INVALID' : 'Code non valide. Réessayer.', 'password.complexity.requirements.header': 'Exigences de complexit\u00E9\u00A0:', 'password.common': 'Ce mot de passe a été trouvé dans une liste de mots de passe couramment utilisés. Veuillez essayer un autre mot de passe.', 'oie.email.verify.subtitle.text.without.email': ' ', 'oie.email.verify.alternate.magicLinkToYourEmail':'Nous avons envoyé un courriel de vérification à votre adresse courriel/ email enregistrée.', }, }, }; // Search for URL Parameters to see if a user is being routed to the application to recover password var searchParams = new URL(window.location.href).searchParams; oktaConfig.otp = searchParams.get('otp'); oktaConfig.state = searchParams.get('state'); try { const oktaSignIn = new OktaSignIn(oktaConfig); oktaSignIn.on('sessionExpired', function (context) { localStorage.clear(); location.reload(); }); oktaSignIn.on('afterRender', function (context) { contextObj = context; let langSwitcher = document.getElementsByClassName('mlSwitcher')[0]; if (contextObj.controller == 'primary-auth') { langSwitcher.classList.remove('hide'); } else { langSwitcher.classList.add('hide'); } if (context.formName == 'select-authenticator-authenticate') { document.getElementById('okta-login-container').style.visibility = 'hidden'; const btn = document.querySelector('[data-se="okta_email"] a[data-se="button"]'); if (btn) { btn.click(); return; } } document.getElementById('okta-login-container').style.visibility = 'visible'; }); oktaSignIn.on('afterError', function (context, errorResponse) { errorHandler(errorResponse); }); return oktaSignIn; } catch (err){ } } } function errorHandler(errorResponse) { formHasError = true; errorKey = null; if (errorResponse != null) { if ((errorResponse.xhr != null) && (errorResponse.xhr.responseJSON != null)) { if ((errorResponse.xhr.responseJSON.errorCauses != null) && errorResponse.xhr.responseJSON.errorCauses.length) { errorKey = errorResponse.xhr.responseJSON.errorCauses[0]; } if ((errorResponse.xhr.responseJSON.errorSummaryKeys != null) && errorResponse.xhr.responseJSON.errorSummaryKeys.length) { errorKey = errorResponse.xhr.responseJSON.errorSummaryKeys[0]; } } } } function caOktaWidgetLogout(event, isOktaInitialised, postLogoutRedirectUri, oIssurerUri, oRedirectUri, oClientId) { if (!isOktaInitialised) { return true; } if (event && event.preventDefault) { event.preventDefault(); } const logoutEl = document.getElementById('logoutUri'); const logoutUri = (logoutEl && logoutEl.href) ? logoutEl.href : postLogoutRedirectUri; if (!logoutUri || !logoutUri.toLowerCase().includes('logout')) { return true; } ensureOktaSignInLoaded() .then(function () { if (!oktaSignIn) { oktaSignIn = initialiseOktaSignIn(oIssurerUri, oRedirectUri, oClientId); } if (oktaSignIn && oktaSignIn.authClient) { oktaSignIn.authClient.signOut({ clearTokensBeforeRedirect: true, postLogoutRedirectUri: logoutUri, }); } else { window.location.href = logoutUri; } }) .catch(function () { window.location.href = logoutUri; }); return false; } function setupCookiesOnBackEnd(caPostLoginPerformUri, caPostLoginRedirectUri, idToken) { document.querySelector('#loader').style.display = 'block'; fetch(caPostLoginPerformUri, { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ username: idToken.claims.app_username, email: idToken.claims.email, token: idToken.idToken }), }).then((response) => window.location.replace(caPostLoginRedirectUri)); } var oktaDivObserver = null; //START requirement for preventing symbols from password because of supporting old system function extra_watchWidgetDivChanged() { const widgetDiv = document.getElementById('okta-login-container'); if (widgetDiv) { oktaDivObserver = new MutationObserver(watchPasswordValue); // observe everything except attributes oktaDivObserver.observe(widgetDiv, { childList: true, // observe direct children subtree: true, // and lower descendants too //characterDataOldValue: true // pass old data to callback }); //document.body.on('DOMSubtreeModified', widgetDiv, function() { // watchPasswordValue(); //}); } } function watchPasswordValue() { let subButt = document.querySelectorAll('input[type=submit]')[0]; let passVal = document.getElementsByName('credentials.passcode')[0]; let passExp = document.getElementsByClassName('password-expired')[0]; let forgotPass = document.getElementsByClassName('forgot-password')[0]; //Introduce email to trigger forgot password flow if (subButt && !passVal && forgotPass){ addForgetPasswordInstructions(); } //Update password if (subButt && passVal && (passExp || forgotPass)) { addInfoSymbolToList(); subButt.addEventListener('click', handlePasswordValue); } customizeErrorMessage(); } function customizeErrorMessage() { let currentLocale = getLocale(); let formErrorContainerElement = document.getElementsByClassName('o-form-error-container')[0]; if (formHasError && (errorKey != null)) { formHasError = false; if ((customErrorMessages[contextObj.controller] != null) && (customErrorMessages[contextObj.controller][currentLocale] != null) && (customErrorMessages[contextObj.controller][currentLocale][errorKey] != null)) { /* Disconnecting the observer */ oktaDivObserver.disconnect(); formErrorContainerElement.querySelector('.infobox p').innerHTML = customErrorMessages[contextObj.controller][currentLocale][errorKey]; formErrorContainerElement.setAttribute('style', 'display:block !important'); /* Reestablishing the observer */ extra_watchWidgetDivChanged(); } else { formErrorContainerElement.setAttribute('style', ''); } } else { if (formErrorContainerElement != null) { formErrorContainerElement.setAttribute('style', ''); } } formHasError = false; errorKey = null; } function addInfoSymbolToList() { var newPassPolicyList = document.createElement('p'); var currentLocale = getLocale(); newPassPolicyList.textContent = customErrorMessages['password-policy'][currentLocale]['password.policy']; let passAuthList = document.getElementsByClassName('password-authenticator--list')[0]; try{ passAuthList.replaceWith(newPassPolicyList); } catch(err){ } } function addForgetPasswordInstructions() { var instructions = document.createElement('instructions'); var currentLocale = getLocale(); instructions.textContent = customErrorMessages['forget-password-instructions'][currentLocale]['password.policy.instructions']; let infoContainer = document.getElementsByClassName('o-form-info-container')[0]; try{ infoContainer.replaceWith(instructions); } catch(err){ } } function handlePasswordValue(e) { var format = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?!.*\W).{8,13}$/; let passValue = document.getElementsByName('credentials.passcode')[0].value; if(passValue !== ""){ let result = format.test(passValue); if (!result === true) { removePasswordErrorMessages(); addPasswordErrorMessages(); e.preventDefault(); return false; } else { removePasswordErrorMessages(); } } else { removePasswordErrorMessages(); } } document.addEventListener('DOMContentLoaded', (event) => { const widgetDiv = document.getElementById('okta-login-container'); if(widgetDiv != null){ widgetDiv.addEventListener('click', function(event) { if(event.target.matches('input.button.button-primary[data-type="save"]')) { try{ let identifier = document.querySelector('input[name="identifier"]').value; updateUserLocale(identifier); } catch (err) { } } }); } }); function updateUserLocale(identifier){ var newLocale = getLocale(); fetch(updateUsersUrl, { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ ssoId: identifier, locale: newLocale, }), }); } function addPasswordErrorMessages() { managePasswordErrorMessages(true); } function removePasswordErrorMessages() { managePasswordErrorMessages(false); } function managePasswordErrorMessages(add) { let parentDiv = document.getElementsByName('credentials.passcode')[0].parentElement.parentElement; let redErrorDiv = document.getElementsByClassName('o-form-error-container')[0]; if (add === true) { //red error message box redErrorDiv.classList.add('o-form-has-errors'); redErrorDiv.setAttribute('data-se', 'o-form-error-container'); let div1 = document.createElement('div'); div1.setAttribute('id', 'manualErrorD'); let div2 = document.createElement('div'); div2.setAttribute('class', 'okta-form-infobox-error infobox infobox-error'); div2.setAttribute('role', 'alert'); let span = document.createElement('span'); span.setAttribute('class', 'icon error-16'); div2.appendChild(span); div1.appendChild(div2); redErrorDiv.appendChild(div1); //o-form-has-errors" data-se="o-form-error-container">
We found some errors. Please review the form and make corrections.