Как запретить несколько авторизаций?

Создаю браузерную игру на PHP для мобильных телефонов. В игре есть такое понятие, как аккаунт. На этом аккаунте может быть несколько персонажей. Т.е пользователь создает один аккаунт и может с помощью этого аккаунта создавать себе разных персонажей.
Вопрос: Как на PHP можно сделать так, чтобы игрок не смог одновременно играть сразу за двух персонажей? Например, игрок заходит с оперы и с гугл хрома одновременно и шпили-вилит в игре сразу двумя персонажами, а это запрещено.
Собственно, код мне не нужен, хотелось бы услышать способ реализации (как лучше сделать защиту).
Если делать защиту по IP, то игрок может спокойно играть через прокси или с телефона и с компа одновременно. Отпадает.
Значит, нужно привязывать к аккаунту. Сканировать последние заходы за всех персонажей на аккаунте? В общем, я в тупике :(
  • Вопрос задан
  • 427 просмотров
Пригласить эксперта
Ответы на вопрос 3
miraage
@miraage
Старый прогер
Предположим, что авторизация создают новую сессиию.

Варианта два:
- убивать все сессии по данному пользователю при авторизации (по мне так, предпочительнее)
- при авторизации проверять наличие текущей сессии - вывести сообщение, если она активна

// UPD

Дополнение к комментарию от Сергей :
Я захожу под персонажем1 с клиента1.
Затем захожу под персонажем2 с клиента2.
При авторизации персонажа2 - клиент1 вылетает с ошибкой.
Ответ написан
bigton
@bigton
Web-программист
Почему просто нельзя хранить в таблице ID текущего персонажа? То есть просто таблица соответствий account_id-current_character_id. По всему проекту использовать $current_character_id. И получается не важно с какого устройства ты зашел, всегда будет грузиться установленный текущим персонаж и только для него буду выполнятся все действия.

Авторизации тут вообще за уши притянуты.
Ответ написан
Комментировать
Neuroware
@Neuroware
Программист в свободное от работы время
При авторизации генерировать Токен, уникальную строку, писать ее в БД, все запросы обрабатывать только при указании действительного токена, т.к. такой токен будет только 1, потому как старый стирается при новой авторизации проблема становится не актуальной
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽