--- name: LATAM Pass Bookmarklet Cookies Broadcast 2026-05-11 description: Bypass do Auth0 anti-abuse via cookies de sessão real do Jesiel. Bookmarklet → gateway → 2 VMs. Padrão idêntico ao AA. type: project originSessionId: 2599d295-29b1-43d3-93f7-6b44de3bf1d6 --- # LATAM Pass — Sistema de Cookies Broadcast — 2026-05-11 ## Solução implementada Bypass do anti-abuse Auth0 LATAM **sem precisar fazer login automático**. Jesiel loga manualmente UMA VEZ no navegador dele → clica num bookmarklet → cookies da sessão real são distribuídos pras 2 VMs → solver fica logado. **Padrão idêntico ao AA Cookies Broadcast (`aa-broadcast.html`)** que está estável há semanas. ## Como usar (Jesiel) 1. Abrir http://75.119.132.37/latampass-broadcast.html 2. Arrastar o botão rosa **"📨 Enviar cookies LATAM Pass"** pra barra de favoritos do Chrome 3. Abrir `https://beta.latampass.latam.com/br/pt/` e logar **normalmente** (CPF + senha + email código) 4. Estando logado, **clicar no favorito** que foi pra barra 5. Cookies da sessão real → distribuídos pras 2 VMs → solver fica `loggedIn=true` Cookies LATAM duram 1-7 dias. Refazer quando status mostrar `EXPIRADO`. ## Arquitetura ``` [Chrome Jesiel logado em beta.latampass.latam.com] │ document.cookie │ postMessage / ?cookies=... ▼ [http://75.119.132.37/latampass-broadcast.html] │ POST /api/latampass/cookies-broadcast (gateway) ▼ [api-gateway 173.208.187.154:3001] │ paralelo (Promise.all) ├──► adv-22:9098/set-cookies ──► injetar via CDP ──► loggedIn=true └──► adv-23:9098/set-cookies ──► injetar via CDP ──► loggedIn=true (PENDENTE deploy) ``` ## Endpoints criados ### latampass-solver.mjs (adv-22:9098 e adv-23:9098) - `POST /set-cookies` — recebe `{cookies: "raw_string"}`, parse, inject via Playwright `addCookies`, persiste em `/opt/latampass-solver/cookies.json`, marca `loggedIn=true` - `GET /cookies-status` — retorna `{hasCookies, count, rawLength, setAt, ageMin, loggedIn, persisted, needsRefresh}` - Boot: lê `cookies.json` do disco e injeta automaticamente (sobrevive a reboot) ### server.js (gateway 3001) - `GET /api/latampass/cookies-broadcast` — status agregado das 2 VMs - `POST /api/latampass/cookies-broadcast` — body `{cookies}`, fan-out paralelo pras 2 VMs ### Frontend - `/var/www/skymilhas/public/latampass-broadcast.html` — UI com bookmarklet generator + status realtime ## Bookmarklet code ```javascript javascript:(function(){ var c=document.cookie; if(!c||c.length<30){alert('Sem cookies LATAM. Logue em beta.latampass.latam.com primeiro.');return;} var w=window.open('http://75.119.132.37/latampass-broadcast.html','_blank'); if(!w){alert('Popup bloqueado.');return;} var n=0; var iv=setInterval(function(){ n++; try{w.postMessage({type:'latampass-cookies',cookies:c},'http://75.119.132.37');}catch(e){} if(n>=30)clearInterval(iv); },500); })(); ``` ## Validação end-to-end (com cookies dummy) ``` POST /api/latampass/cookies-broadcast → success:false (adv-23 ECONNREFUSED), adv-22: ok=true, count=9, loggedIn=true, persisted=true ``` Confirmado: o pipeline funciona. Falta apenas: 1. Cookies REAIS do Jesiel (via bookmarklet) 2. Deploy latampass-solver na adv-23 (senha sudo pendente) ## Pendências 1. **Jesiel testar bookmarklet**: abrir http://75.119.132.37/latampass-broadcast.html, arrastar pra barra, logar em LATAM Pass, clicar 2. **adv-23**: replicar solver (mesmo SCP + npm + systemd do adv-22). Sudo NOPASSWD necessário 3. Após cookies reais OK: rodar busca real e validar BFF redemption=true ## Arquivos | Lugar | Arquivo | Status | |---|---|---| | adv-22 | `/opt/latampass-solver/latampass-solver.mjs` (~620 linhas) | ✅ patched + restarted | | adv-22 | `/opt/latampass-solver/cookies.json` | criado quando 1ª broadcast | | servidor scraper | `/opt/skymilhas/server.js` linha ~6080 | ✅ + backup .bak-pre-latampass-broadcast | | servidor site | `/var/www/skymilhas/public/latampass-broadcast.html` (8117 bytes) | ✅ deployed | ## Próximos passos 1. **Jesiel**: testar bookmarklet 2. Se funcionar: deploy adv-23 3. Validar busca BFF redemption=true via gateway **Why:** Auth0 anti-abuse silencioso da LATAM bloqueia envio de email após N tentativas pelo nosso solver. Padrão de cookies-broadcast (já validado com AA) bypassa o Auth0 inteiro — usa sessão real do Jesiel. **How to apply:** Quando cookies da LATAM expirarem, Jesiel refaz login no navegador + clica bookmarklet → broadcast automático.