as3 уникальный сеанс входа

У меня есть логин, работающий во Flash >> PHP >> MYSQL и способный делать все, что мне нужно.

Тем не менее, у меня возникла проблема, что человек может войти в систему под той же учетной записью и начать что-то перебирать. Это создает проблемы с обновлением данных, так как кто-то может что-то изменить, а другой человек может перезаписать свои данные или дублировать их.

Я видел упоминание о сессии php, но мне нужно больше информации.

Буду ли я устанавливать таймер для входа в систему, чтобы в моей базе данных MYSQL у меня была User|Pass|TimeStamp. После входа в систему отметка времени устанавливается на Now()+15 секунд, и каждые 10 секунд таймер будет вызывать и обновлять отметку времени (+15s) снова. Таким образом, при входе в систему, если человек пытается войти в систему, время входа должно быть> тогда отметка времени?

Я думаю, что таким образом, если текущий вошедший в систему пользователь удаляется от программы Flash, таймер входа больше не будет срабатывать??

Есть ли другой способ, которым я должен пойти по этому поводу? Настроить автоматический выход из активности каждые 5 минут? Если кто-то пытается войти в систему, он отправляет запрос всем активным браузерам, чтобы узнать, используется ли сеанс имени пользователя / пароля (я использую идентификатор экземпляра)?

Некоторый код или указания на то, что я должен изучить, будет принята с благодарностью.

х

1 ответ

Решение

Я предлагаю вам продолжить свою логику (обновление базы данных через определенные промежутки времени), с небольшими изменениями - не использовать для этого таймер, а обновлять при каждом взаимодействии с пользователем.


Допустим, ваш IDLE_TIME составляет 10 минут.

  • Каждый раз, когда пользователь перемещается по любому разделу или вносит какие-либо существенные изменения, вы обновляете метку времени регистрации.
  • если пользователь не будет взаимодействовать в течение этого времени, его выгонят;

Я реализовал нечто подобное несколько лет назад, но использовал только PHP. Вверху всех моих файлов я бы сравнил отметку времени последнего взаимодействия с текущим временем, если оно больше, чем IDLE_TIME: нажмите, если нет, обновите.

Использование таймера было бы немного ненужным и болезненным для вашей базы данных, если бы большое количество пользователей использовали вашу систему одновременно.

Другие вопросы по тегам