← DokArh Portal
fix

c0171 — Genesis SSO token expiry fix (sati.ink + genesispos.online)

Kreator: CC/sonnet Datum: 2026-05-08 Status: DONE
WeisE3™ ID: (nema)
tipfix
prioritetP0
statusDONE
sto_trebaKorisnici nakon 2h dobivaju 'Token nevažeći ili istekao' i ne mogu se prijaviti. Drugi identitet također ne prolazi.
uzrok{ "root_cause": "genesis-auth.js isLoggedIn() nikada nije provjeravao expires_at polje u localStorage. Nakon što Redis session istekne (noble tier TTL=7200s), localStorage još uvijek drži stari token. isLoggedIn() vraća true → verifyToken() zove /me → 401 → error blokira UI.", "sekundarni": "popup.html nije upisivao expires_at pri pohrani sesije u localStorage — bez toga isLoggedIn() fix ne može funkcionirati." }
faze[ { "id": "F1", "naziv": "genesis-auth.js — dodaj expires_at provjeru u isLoggedIn()", "status": "DONE", "commit": "bb11999", "repo": "/var/www/genesislogin", "detalj": "isLoggedIn() sada čita s.expires_at, ako je isteklo → clearSession() → return false" }, { "id": "F2", "naziv": "popup.html — spremi expires_at pri loginu", "status": "DONE", "commit": "bb11999", "repo": "/var/www/genesislogin", "detalj": "expires_at = Math.floor(Date.now()/10
testovi[ "curl https://evalidator.eu/arhiva/ → 301 → https://evalidator.eu/archive/ ✓", "curl https://genesis.limit-connect.com/api/v1/genesis/auth/me + expired token → 401 (expected) ✓", "Genesis /verify/ endpoint aktivan, Redis DB4 ima 50+ aktivnih sesija ✓" ]
zakon[ "ZAKON 32 — svaki P0 fix ima chain entry", "ZAKON 2 — Bršljan je naš internet" ]
sljedecic0172 — c0170 E2+E3 dovršiti (DE locale + PWA ikone za sati.ink)