0

我想跟踪匿名用户的操作,就好像用户将通过身份验证一样。目标是让用户执行操作(通常保留给经过身份验证的用户),以特殊状态将其保存在数据库中(在用户登录应用程序之前不可见)。

例如,匿名用户回复评论。系统检测到用户未登录,将评论保存为特殊状态“等待认证”。系统要求用户登录,以完成评论的注册。用户登录应用程序。系统检查“等待身份验证”状态并将条目更新/关联到经过身份验证的用户。

您对实现此类功能有什么建议/经验吗?也许 Symfony 已经为此提供了功能/捆绑包?

4

2 回答 2

2

您正在尝试做的是类似于Lazy Registration,这是一个经过验证的概念。它在 stackoverflow 上得到了很好的实现。它允许您在提供电子邮件地址后发布消息。它的工作原理与此类似: http ://www.90percentofeverything.com/2009/03/16/signup-forms-must-die-heres-how-we-killed-ours/

但是,如果您真的想按自己的方式行事,而无需向用户询问电子邮件地址,我建议您将数据存储在浏览器本地存储中。这将为您节省大量后端工作。只有当用户注册时,数据才会传输到后端。这样,您还可以防止从未注册的用户污染数据库。http://blog.teamtreehouse.com/storing-data-on-the-client-with-localstorage

于 2016-07-18T16:36:24.827 回答
0

您可以使用 IP 地址,但它不会很有效,因为一个用户可以从多个 IP 地址(wifi、3g/4g 连接......)访问您的网站。您可以依赖 cookie,但一旦他从另一台设备登录,您将无能为力。

IMO,您应该保存操作并将它们链接到您发送给匿名用户的 uniq 令牌,一旦他通过身份验证,他就可以提供生成的令牌,然后您为该用户保存操作。小心不要忘记在“识别”后删除已保存的匿名操作。

于 2016-07-18T15:09:17.650 回答