Symfony 2跟踪数据库中的匿名用户操作

时间:2016-07-18 14:12:29

标签: symfony authentication action anonymous user-tracking

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

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

您是否有任何建议/经验来实施此类功能?也许Symfony已经在功能/捆绑中了?

2 个答案:

答案 0 :(得分:2)

您要做的是与懒惰注册相似,这是一个经过验证的概念。它在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

答案 1 :(得分:0)

您可以使用IP地址,但它不会非常有效,因为一个用户可以从许多IP地址(wifi,3g / 4g连接......)访问您的网站。 你可以依赖cookie但是一旦他从另一台设备登录你就无法做任何事情。

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