【问题标题】:Symfony2: log user activitySymfony2:记录用户活动
【发布时间】:2012-08-06 22:35:16
【问题描述】:

我是 Symfony 和 PHP 的新手(以前使用 C++、Java),我找不到任何关于如何将用户登录和注销操作记录到数据库的解决方案。我想要这些具体信息:

  • 采取行动的用户(通过 userId),
  • 操作说明(登录或注销),
  • 当前时间戳。

我正在寻找最简单的解决方案。我通过修改渲染用户登录表单的功能成功地记录了用户登录信息,但是在注销时我失败了。我知道这毕竟是一个糟糕的主意,但我想不出更好的主意。有什么建议么?提前致谢。

【问题讨论】:

    标签: login symfony logout


    【解决方案1】:

    如果你看一下here,它说你可以定义一个成功处理程序和一个失败处理程序,用于将内容记录到数据库中。您还可以找到reference documentation 中定义的处理程序参数。

    登录

    您将首先创建一个服务,该服务获取 security.context 和 entityManager 作为参数,并使用两者来确定登录的用户。然后将此服务添加到 success_handler 参数并在用户登录后调用。

    退出

    我猜这个更棘手,因为我假设 security.context 不再有关于用户的信息,你不能用它来确定哪个用户正在注销。您可能想查看 handlers 参数实际上是什么。它可能是在处理注销时调用的处理程序,因此您可以使用它。当然,您可能会记录一些失败的注销,因为没有成功处理程序,您无法确定注销是否成功。另一方面,也许您可​​以从某个地方(同样,security.context 可能)获取会话 ID,然后将其记录下来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-09
      • 2012-05-13
      • 2017-10-02
      • 1970-01-01
      • 2021-11-19
      • 2013-09-02
      • 1970-01-01
      • 2014-09-28
      相关资源
      最近更新 更多