- Spegnimento
- 22 agosto 2026 alle ore 21:47 UTC
- Autore
- Kamo
- Impegno
- 0fc3aff
Nulla in SecurityService ha mai scritto utenti.last login. La scrittura vissuta nel servizio di autenticazione in pensione e non è stato trasportato quando autenticazione spostata al Servizio di autenticazione solo JDBC, che legge e non scrive mai. La colonna era quindi NULL per ogni utente, e ogni superficie che lo mostra leggere "Never": i membri /account e le griglie dei membri del team, il chip di intestazione del profilo del membro, e la scheda Login & Security. Niente di sbagliato ovunque, perché ogni strato si comporta correttamente per un null. Timbrare dove la chiave di una volta è coniata piuttosto che dove la password è controllato. OTK è ciò che effettivamente consegna la sessione al browser, quindi un sign-in che si ferma al secondo fattore ha dimostrato una password, non un l'identità, e non lascia segno fino a quando il fattore è soddisfatto. Impersonazione e enter-as deliberatamente non timbrare: quelle menta una sessione unità di amministratore, e la registrazione come il login del membro avrebbe messo un login non hanno mai eseguito in una superficie di audit. /dispositivo / scambio è sfondo token rinfrescare che gestisce anche org commutazione, quindi timbrare sarebbe trasformare il valore in "ultima volta che il telefono ha telefonato a casa". Il valore è LocalDateTime.toString() in UTC troncato a millisecondi, il app/lib/server di forma senza offsetTime.ts già parses; il lato web non aveva bisogno di cambiamento. Effetto collaterale che vale la pena sapere: questo rende la porta segnaposto in SecurityController Davvero. Testa "mai verificata e mai firmata", e con last login sempre NULL la seconda clausola era sempre vera, degenerando l'assegno EmailSi è verificato da solo. Le righe esistenti rimangono NULL fino a quando ogni utente firma successiva. I login non sono mai stati registrato, quindi non c'è nulla da riempire.