Как насчет того, чтобы записать временную метку в базу данных при входе пользователя в систему. Возможно, у вас есть логика периодически обновлять это значение, если пользователь еще вошел в систему - например, страница может отправлять запрос AJAX каждые 5 минут, чтобы обновить значение или что-то.
Затем, если значение старше определенного порога (скажем, 1 час), вы можете разрешить повторный вход в систему, что, конечно, сбросит отметку времени и запретит доступ кому-либо еще.