as3 уникальный сеанс входа
У меня есть логин, работающий во Flash >> PHP >> MYSQL и способный делать все, что мне нужно.
Тем не менее, у меня возникла проблема, что человек может войти в систему под той же учетной записью и начать что-то перебирать. Это создает проблемы с обновлением данных, так как кто-то может что-то изменить, а другой человек может перезаписать свои данные или дублировать их.
Я видел упоминание о сессии php, но мне нужно больше информации.
Буду ли я устанавливать таймер для входа в систему, чтобы в моей базе данных MYSQL у меня была User|Pass|TimeStamp. После входа в систему отметка времени устанавливается на Now()+15 секунд, и каждые 10 секунд таймер будет вызывать и обновлять отметку времени (+15s) снова. Таким образом, при входе в систему, если человек пытается войти в систему, время входа должно быть> тогда отметка времени?
Я думаю, что таким образом, если текущий вошедший в систему пользователь удаляется от программы Flash, таймер входа больше не будет срабатывать??
Есть ли другой способ, которым я должен пойти по этому поводу? Настроить автоматический выход из активности каждые 5 минут? Если кто-то пытается войти в систему, он отправляет запрос всем активным браузерам, чтобы узнать, используется ли сеанс имени пользователя / пароля (я использую идентификатор экземпляра)?
Некоторый код или указания на то, что я должен изучить, будет принята с благодарностью.
х
1 ответ
Я предлагаю вам продолжить свою логику (обновление базы данных через определенные промежутки времени), с небольшими изменениями - не использовать для этого таймер, а обновлять при каждом взаимодействии с пользователем.
Допустим, ваш IDLE_TIME составляет 10 минут.
- Каждый раз, когда пользователь перемещается по любому разделу или вносит какие-либо существенные изменения, вы обновляете метку времени регистрации.
- если пользователь не будет взаимодействовать в течение этого времени, его выгонят;
Я реализовал нечто подобное несколько лет назад, но использовал только PHP. Вверху всех моих файлов я бы сравнил отметку времени последнего взаимодействия с текущим временем, если оно больше, чем IDLE_TIME: нажмите, если нет, обновите.
Использование таймера было бы немного ненужным и болезненным для вашей базы данных, если бы большое количество пользователей использовали вашу систему одновременно.