En este caso la BBDD no te aporta ninguna mejora con respecto a guardar el estado en el context, y del Listener no te libras, si al usuario se le corta la conexión o cierra el navegador ¿adivinas en que estado se quedaría la BBDD?
Cita: y si aun cuando valido eso me permitiria loguearme en otra maquina, es necesario consultar la ip de la maquina?
No lo he entendido, lo que tú pedías es que solo te puedas loguear una vez, independientemente de si es la misma máquina o no. Si quieres hacer algún tipo de filtro sobre la ip, tendrías que recuperarla de la cabecera de la request.