Symfony 2 отслеживает действия анонимного пользователя в базе данных

symfony authentication action anonymous user-tracking

227 просмотра

2 ответа

307 Репутация автора

Я хотел бы отслеживать действия анонимного пользователя, как если бы пользователь был аутентифицирован. Цель состоит в том, чтобы позволить пользователям выполнять действия (обычно зарезервированные для аутентифицированных пользователей), сохранять их в базе данных со специальным статусом (не отображается, пока пользователь не войдет в приложение).

Например, анонимный пользователь ответит на комментарий. Система обнаруживает, что пользователь не вошел в систему, сохраняет комментарий со специальным статусом «ожидание аутентификации». Система попросит пользователя авторизоваться, чтобы завершить регистрацию комментария. Вход пользователя в приложение. Система проверяет статус «ожидания проверки подлинности» и обновляет / связывает записи с проверенным пользователем.

Есть ли у вас какие-либо предложения / опыт для реализации этого типа функциональности? Может, у Symfony уже есть возможность / комплектация для этого?

Автор: Arnaud Ncy Источник Размещён: 18.07.2016 02:12

Ответы (2)


0 плюса

2767 Репутация автора

Вы можете использовать IP-адрес, но он не будет очень эффективным, потому что один пользователь может получить доступ к вашему веб-сайту со многих IP-адресов (Wi-Fi, 3G / 4G соединение ...). Вы можете положиться на куки, но как только он войдет в систему с другого устройства, вы ничего не сможете с этим поделать.

IMO, вы должны сохранить действия и связать их с уникальным токеном, который вы отправляете анонимному пользователю, как только он аутентифицируется, он может предоставить сгенерированный токен, а затем вы сохраните действия для этого пользователя. Не забывайте удалять сохраненные анонимные действия после их «идентификации».

Автор: smarber Размещён: 18.07.2016 03:09

2 плюса

1295 Репутация автора

Решение

То, что вы пытаетесь сделать, - это аналог Lazy Registration , который является проверенной концепцией. Это хорошо реализовано здесь в stackoverflow. Это позволяет вам отправлять сообщения после предоставления адреса электронной почты. Он работает аналогично этому: http://www.90percentofeverything.com/2009/03/16/signup-forms-must-die-here-how-we-killed-ours/

Однако, если вы действительно хотите идти своим путем, не спрашивая у пользователя адрес электронной почты, я бы рекомендовал хранить данные в локальном хранилище браузера . Это сэкономит вам много работы на бэкэнд-стороне. Данные будут передаваться на сервер только тогда, когда пользователь регистрируется. Таким образом, вы также предотвратите загрязнение базы данных пользователями, которые никогда не регистрировались. http://blog.teamtreehouse.com/storing-data-on-the-client-with-localstorage

Автор: lchachurski Размещён: 18.07.2016 04:36
Вопросы из категории :
32x32