World of Warcraft от Blizzard Я считаю, что это прекрасно реализуется.
В основном, если вы попытаетесь войти в игру после того, как уже вошли в систему, первое соединение сбрасывается.
Это в основном просто влечет за собой сохранение сеанса в базе данных. Когда вы сохраняете данные сеанса, сохраняйте также имя пользователя. Когда пользователь входит в систему, удалите все записи сеанса с таким именем пользователя, а затем создайте новую для пользователя, который входит в систему.
Я бы не предложил блокировать «новых» людей, пытающихся войти в систему, потому что пользователи не хотят возвращаться к другому компьютеру, который у них есть (возможно, в нескольких милях), просто потому, что они забыли выйти из системы.
Есть также некоторые другие вещи, о которых вам, возможно, придется подумать. Такие вещи, как угон сеанса. Если пользователь просто помещает файл cookie в свою систему (что всегда возможно) с правильным идентификатором сеанса, возможно, он может использовать один и тот же сеанс на нескольких компьютерах. В этом случае вы, вероятно, захотите сохранить поле IP, в котором хранятся данные о том, кто в данный момент вошел в систему.