2013-04-05 2 views
0

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

Редактировать: Я обновляю сообщение с помощью некоторой логики приложения. Приложение относится к каталогу мастеров. Каждый мастер отправляется в приложение. Когда кто-то ищет ремесленников, он сможет увидеть зарегистрированные в них и отправить сообщение с описанием работы, которое необходимо выполнить. Ремесленники могут не иметь другого вида деятельности, которые просто входят в приложение, поэтому у приложения оно должно быть способ «сказать», если пользователь вошел в систему или нет.

+3

Возможно, это немного зависит от того, что безопасно. – hakre

+1

Возможно, вы можете попробовать проверить время со времени их последнего действия (путем хранения таких данных), и если это меньше определенного числа (может быть, 5, 10 или 20 минут), укажите их как зарегистрированного пользователя. Помимо этого вы также можете заставить клиентскую сторону всех ваших страниц постоянно «пинговать» сервер, чтобы вы знали, что они активны, а не только загрузка последней страницы. –

+0

@Stathis: Это зависит от вашей потребности/особенностей вашего приложения. Независимо от того, что вы хотите, вы можете сделать, но кодирование должно быть безопасным способом. Отображение и все зависит только от вашего требования. –

ответ

0

Под «безопасным» подразумевается «точное»?

Я предлагаю установить флаг LOGGED_IN, когда они изначально и успешно (безопасно!), Войдите в систему. Затем обновляйте временную метку каждый раз, когда этот пользователь запрашивает другую страницу. Когда last_update достигнет льготного периода, 15 минут ?, вы можете предположить, что они вышли из системы.

+0

Да, но это не дает надежного способа узнать, связаны ли они. Пожалуйста, проверьте мои другие комментарии. Пользователи приложения могут быть просто зарегистрированы (и неактивны) и ждут сообщения/вызова из-за описанной логики приложения. – Stathis

1

Я думаю, что только php для ваших требований затруднит это. Взгляните на socket.io или что-то подобное. Вы можете добиться этого с помощью мастеров, имеющих соединение типа longpolling/sse/websockets. Вы можете интегрировать это с php, обслуживающим html, а затем настроить соединение с клиентом на документе, готовом к socket.io.

+0

Да, socket.io - это способ сделать это, но ему нужна платформа Node.js для запуска, что делает его немного неудобным, потому что основное приложение будет работать в среде PHP/Apache/mySQL. Хорошее предложение! – Stathis

+0

Для чего стоит: вы можете установить его рядом с php/apache/mysql, с обратным прокси (mod_proxy на apache), вы даже можете получить доступ к нему в том же домене: скажем, карты io.example.com к example.com/io/например, чтобы избежать проблем с перекрестными доменами. Это может показаться пугающим, но это действительно не так сложно, и в долгосрочной перспективе это будет лучше соответствовать вашим потребностям. –

+0

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

Смежные вопросы