2012-08-06 92 views
2

我是Symfony和PHP(以前使用C++,Java)的新手,我無法找到任何有關如何將用戶登錄和註銷操作記錄到數據庫的解決方案。我希望這些具體信息:Symfony2:登錄用戶活動

  • 用戶誰了行動(通過用戶id),
  • 動作描寫(登錄或註銷),
  • 當前時間戳。

我正在尋找最簡單的解決方案。我設法通過修改函數呈現用戶登錄表單來成功登錄用戶登錄信息,但是在註銷時我失敗了。畢竟,我知道這是一個糟糕的主意,但我無法想出更好的主意。有什麼建議麼?提前致謝。

回答

1

如果你看看here,它說你可以定義一個成功處理程序和一個失敗處理程序,用於將東西記錄到數據庫中。您還可以找到在reference documentation中定義的處理程序參數。

登錄

你會首先創建該得到的了security.context和EntityManager的作爲參數,並同時使用,以確定哪些用戶登錄的服務。該服務,然後加入到success_handler參數,併爲此呼籲後在用戶登錄。

註銷

這一個是更靠譜我想,我會假設security.context沒有關於用戶的信息了,你ç annot使用它來確定哪個用戶正在註銷。你可能想看看handlers參數實際上是什麼。它可能是一個處理註銷時調用的處理程序,因此您可以使用它。當然,你可能會記錄一些註銷失敗,因爲沒有成功處理程序,你不能確定註銷是成功的。另一方面,也許你可以從某個地方獲得會話ID(也許,security.context),然後記錄下來。