Ограничение одновременного доступа

  • Автор темы Автор темы elven
  • Дата начала Дата начала

elven

Новичок
Ограничение одновременного доступа

У меня есть защищенная область на сайте. Доступ реализован через сохраниение cookies при логине и проверке его в других страницах. Данные в cookies зашифрованы. Возможно и не самый лучший способ, но вроде бы работает нормально.

Захотелось его улучшить. Как сделать так чтобы когда 1 пользователь зашел по своему логину, никто более не смог зайти по этому логину, пока 1-й не вышел из защищенной зоны? На данный момент система допускает несколько одновременнных подключений по одному логину.

Это реализуется через сессии? Может ли кто объяснить как это можно реализовать?
 
Храни сессию текущего пользователя в таблице. При логине проверяй, нет ли такого.
 
Когда этот вопрос поднимается на форуме, обычно рекомендуют не ограничить доступ остальным залогинившимся, а делать, как в айсикью - выкидывать того, кто был залогинен раньше.
 
я так думаю это надо ковырять в настройках апача, но могу ошибаться
 
Спасибо. Про выкидывание что то не додумался, идея хорошая.

Еще один вопрос. Вот предположим я залогинился, создан идентификатор сессии, он записывается в базу вместе с логином. Далее происходит обрыв или выход. НО запись то в базе остается. КАк там удалить, если сессии уже нету? Извиняюсь, если я несу полную ахинею, просто в сессиях я еще пока не разбираюсь
 
+ к этому, если юзаешь куки, то конечно хранить его айпишник и какие то параметры окружения. Потому что ничто не мешает пользователю поделится своими куками.
 
Записывайте в базу дату-время последней операции данного юзера и идентификатор его сессии.

При нажатии кнопки "выход" отмечайте что вышел, стирая эти дату-время.

В течении определенного времени (скажем 10-15 минут) не пускайте никого с другим идентификатором сессии.
 
А если он вышел не нажав на кнопку выход? То тогда проверка на истечение 15 минут, т.е. получается блокировка на 15 минут?
 
Фанат
Когда этот вопрос поднимается на форуме, обычно рекомендуют не ограничить доступ остальным залогинившимся, а делать, как в айсикью - выкидывать того, кто был залогинен раньше.
Выкидывать? А если, к примеру, в этот момент идёт загрузка файлов?

P.S. Хотя, в общем, это дело прописанной политики доступа.
 
Сверху