
Originariamente inviata da
M4V1
Se vuoi che l'utente non possa essere loggato da più postazioni contemporaneamente puoi salvarti nel db all'interno dell'oggetto utente l'id di sessione (in fase di login) e fare un controllo solo su quello. In ogni pagina in cui l'utente deve essere autenticato controlli se l'id della sessione e quello sul db sono gli stessi, in quel caso è tutto ok, se invece non è così consideri nulla l'autenticazione, ripulisci sessione e campo del database e fai effettuare il login nuovamente. Ovviamente in fase di logout devi cancellare sia la sessione sia il campo del db dove hai salvato l'id di sessione.
Così, nel caso che mi hai descritto, se un utente lascia il browser aperto con una sessione attiva in ufficio/facoltà una volta arrivato a casa invaliderà quella sessione semplicemente facendo il login da una postazione diversa, senza bisogno di cambiare password.
Su questi argomenti sono un po' arrugginito perché negli ultimi anni usando i framework il processo di autenticazione spesso lo tocco a fatica, ma non credo di averti detto cazzate
