Как я могу убедиться, что пользователь не может войти дважды с одной и той же учетной записью в PHP? - PullRequest
3 голосов
/ 20 мая 2011

У меня есть приложение PHP с сессиями, и я хочу убедиться, что пользователи не передают свои учетные данные третьим лицам, которые могут одновременно использовать учетную запись.

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

Есть ли способ просмотреть, какие сеансы активны?

Большое спасибо.

Ответы [ 3 ]

2 голосов
/ 20 мая 2011

Вы можете связать идентификатор сеанса с зарегистрированным пользователем.Затем посмотрите, есть ли у этого пользователя идентификатор сеанса, если это так, уничтожьте этот сеанс с этим идентификатором сеанса.Свяжите также название сеанса.Затем вы можете уничтожить сессионный cookie этого пользователя.

setcookie($session_name, '', time()-3600, '/');
1 голос
/ 20 мая 2011

Это очень широкий вопрос с рядом решений - см. Google http://www.google.com/search?q=php+preventing+multiple+logins&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

Общий принцип таков - вам нужно отслеживать сеансы и в коде обработки входа в систему проверять, активен ли сеанс для пользователя, пытающегося войти в систему, - и либо блокировать эту попытку входа, либо загружать текущего зарегистрированного пользователя в пользу пользователя, пытающегося войти в систему. Существует несколько способов отслеживания сеансов, обработки истечения срока и т. Д. Вы даже можете выполнить большую часть этой настройки на низком уровне, переопределив механизмы обработки сеансов PHP по умолчанию - вот полезная статья на эту тему http://devzone.zend.com/article/141

1 голос
/ 20 мая 2011

вы можете иметь столбец в своей пользовательской таблице, которую вы проверяете при каждой попытке аутентификации. (заверено: верно, неверно). Сессии прекратятся и будут удалены в соответствии с временными рамками в настройках php. Если файл пропал, сеанс пропал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...