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)