cakephp evita que el usuario inicie sesión desde varias ubicaciones al mismo tiempo

Tengo un sitio web CakePHP 1.3.10 con un sistema de inicio de sesión con Auth. ¿Cómo puedo evitar que un mismo nombre de usuario / contraseña inicie sesión al mismo tiempo desde diferentes ubicaciones? Debería funcionar de manera que cuando un usuario que ya inició sesión inicie sesión desde una ubicación diferente, el primero sea expulsado (para que el último pueda seguir usando mi sitio web).

He estado investigando un poco y no puedo encontrar una solución "suficientemente buena". Parece que uno simple sería almacenar un valor booleano a 1 cuando un usuario inicia sesión, pero no sé qué hacer con eso para que esto funcione de la manera que describo.

La parte fácil es que cuando el usuario cierra la sesión, cambio ese valor a 0. ¿Pero qué pasa si solo cierra el navegador? ¿Y qué hago cuando un usuario inicia sesión y el valor booleano ya está establecido en 1? ¿Cómo pateo al usuario "viejo"?

Cualquier consejo sería muy apreciado..