хранение данных об «анонимном» пользователе - PullRequest
7 голосов
/ 11 мая 2011

В настоящее время я работаю над созданием приложения Symfony2, которое будет не только принимать регистрации пользователей, но позволит посетителям пройти почти Весь поток сайта без создания учетной записи или входа в систему. Идеи дизайна выглядят примерно так (предложения / улучшения приветствуются):

  1. Когда пользователь входит в свою учетную запись, данные будут сохранены для пользователя / связанных объектов как обычно
  2. Когда анонимный пользователь впервые заходит на сайт, для них создается «анонимная сущность пользователя», как если бы они были зарегистрированы, но с идентификатором USER_<session_id> в качестве идентификатора вместо персонализированного имени пользователя. Любая активность, которую они выполняют на сайте, сохраняется для этого объекта анонимного пользователя
  3. Когда анонимный пользователь выбирает для регистрации, его анонимный пользовательский объект обновляется до зарегистрированного пользовательского объекта, сохраняя свои данные для будущего использования
  4. Если анонимный пользователь покидает сайт без регистрации, анонимный пользовательский объект должен быть очищен через некоторое время, чтобы предотвратить накопление мертвых данных

Какой лучший способ сделать это? В частности, что считается «наилучшей практикой» для создания / манипулирования сущностью пользователя для анонимного пользователя без необходимости помещать код в каждый контроллер?

Ответы [ 2 ]

5 голосов
/ 03 августа 2011

Я бы не советовал использовать для этого IP-адрес, так как это может вызвать проблемы у пользователей за NAT. Было бы лучше использовать пользовательский файл cookie или файл cookie sessionId (PHPSESSID) в качестве идентификатора для целей отслеживания. Google использует эту стратегию для своего рекламного бизнеса. Встань на плечи гигантов!

0 голосов
/ 02 августа 2011

У меня есть нечто похожее на это, что я должен был сделать.Я собрал IP-адрес анонимного пользователя (используя ($ _SERVER ['REMOTE_ADDR'])).Затем я использовал IP-адрес для целей отслеживания.Затем вы можете использовать это, когда они регистрируются, чтобы добавить свое прошлое использование в свою вновь созданную учетную запись.

Затем вы можете просто выполнить простой запрос, чтобы удалить любой IP-адрес, который не был активен некоторое время (большинство пользователейиметь ip-адреса dymanic, так что они все равно будут часто меняться).

...