【问题标题】:Symfony 2 track anonymous user actions in databaseSymfony 2 跟踪数据库中的匿名用户操作
【发布时间】:2016-07-18 14:12:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: symfony authentication action anonymous user-tracking


    【解决方案1】:

    您正在尝试做的事情类似于 延迟注册,这是一个经过验证的概念。它在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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-06-20
        • 2011-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-09
        • 2015-05-27
        • 1970-01-01
        相关资源
        最近更新 更多