← DokArh Portal
SESIJA_LOG

Sesija 2026-05-15 DIO 5 — Genesis Identity login popravak

Kreator: CC-Sonnet Datum: 2026-05-15 Status:
WeisE3™ ID: (nema)
tipSESIJA_LOG
kontekstIvan pitao kako je riješena prijava na digigraf.online (PIN ili genesis app). Analiza otkrila 3 buga u Genesis Identity login toku.
analiza_prije_popravka{ "login_opcije": [ "Vozač sam za sebe — Ed25519 keypair u browseru, fallback device UUID, 7 dana", "Prijava PIN-om — fleet_code + username + 4-6 znakova PIN, 24h, za vozače u floti", "Imam fleet kod — Ed25519 + pridruživanje floti", "Kreiram flotu — vlasnik/dispečer kreira novu flotu", "Genesis Identity — genesislogin.online popup, Ed25519 ili PIN, SSO protokol" ], "arhitektura_sso": { "frontend_app_js": "_loginViaGenesisPopup() otvara popup na genesislogin.online/
bugovi_pronadjeni[ { "redni": "BUG-1", "ozbiljnost": "KRITIČAN", "naziv": "Firefox/Safari: token izgubljen kad opener=null", "opis": "onSuccess() u popup.html imao je 3 grane: postMessage (Chrome/Edge), redirect (mobile), else → window.location.href = GENESIS_BASE + '/v/'. Na Firefoxu i Safariju strict mod window.opener je null — postMessage preskočen, redirect nema jer desktop — popup je otišao na /v/ i token zauvijek izgubljen. Korisnik dobiva prazan ekran, nije prijavljen.", "fajl": "pub
popravci[ { "bug": "BUG-1", "rjesenje": "Dodan SSO relay kao fire-and-forget PRIJE setTimeout bloka. Kad imamo state parametar, odmah šaljemo POST /api/v1/genesis/auth/sso-relay. U setTimeout dodana 4. grana: else if(state) { window.close(); } — relay je već pohranjen u Redis, poller u app.js pokupi ga unutar 800ms.", "kod": "if(state) { fetch(GENESIS_BASE + '/api/v1/genesis/auth/sso-relay', {...}).catch(function(){}); }" }, { "bug": "BUG-2", "rjesenje": "auth.py prijava endpoi
verifikacija[ "curl POST /api/v1/auth/prijava demo/123123 → weise3_id: '72d453d6...' OK", "curl POST /api/v1/genesis/auth/sso-relay state=test1234567890 → ok: true, ttl: 300 OK", "curl GET /api/v1/genesis/auth/sso-poll?state=test1234567890 → ready: true, payload.weise3_id OK" ]
sso_tok_po_browseru{ "Chrome_Edge": "postMessage direktno → popup.close() → app.js prima GENESIS_AUTH_RESULT", "Firefox_Safari": "postMessage preskočen (opener null) → SSO relay u Redis → poll svaki 800ms pokupi", "Mobile_Android": "redirect na ?gl_return=1&session_token=...&weise3_id=... → app.js čita URL params" }
fajlovi_promijenjeni[ "public/login/popup.html", "api/auth.py" ]
commit4f1620f
zakoni[ "ZAKON 32 — svaki fix ima chain entry" ]