2015-06-16 3 views
0

Я хочу проверить, зарегистрирован ли один и тот же пользователь в нескольких местах по разному IP-адресу, и если пользователь уже зарегистрировался, предыдущий сеанс будет уничтожен ,Как проверить, зарегистрирован ли пользователь на разных IP-адресах

Есть ли какое-либо решение на основе YII?

В настоящее время я пытаюсь разработать этот проект на основе YII.

+0

что вы пробовали до сих пор ?? – MKD

+0

Возможный дубликат [Разрешить только одну сессию за раз] (http://stackoverflow.com/questions/3164507/allow-one-session-only-at-a-time) – MKD

+0

Проверьте, это поможет вам - http://yii.at/BUgobo и http://yii.at/lcFDr2 –

ответ

1

вы можете сделать, как этот

  • добавить «last_session_ip» столбец в пользовательских данных таблицы
  • , когда пользователь входит в систему, обновить last_session_ip поле с текущего IP
  • создать такую ​​функцию loginauth(), который будет сравнивать текущий ip со значением db. если не то же самое уничтожить сессию

это нехорошее решение, но это может поставить вас на правильный путь.

+0

, но это не означает, что пользователь зарегистрировался на этом ip-адресе, i beleive so .... –

+0

Пользователь может использовать статический ip оттуда поставщик услуг. В этом случае также происходит множественный вход –

+0

, это просто логика. – MKD

0

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