In fase di login salva nel DB un hash con IP ed user agent dell'utente e la data/ora dell'ultima "interazione" con il sito.
Sempre in fase di login, verifica se l'ultimoa data/ora di "interazione" rientra nel timeout della sessione (es 20 minuti). In caso affermativo, permetti il login solo se i due hash corrispondono.

In questo modo se un'altro utente cerca di accedere con IP/User Agent diversi, non ci riuscirà.