2

私はSymfonyとPHP(以前はC ++、Javaで動作していました)に不慣れで、ユーザーのログインとログアウトのアクションをデータベースに記録する方法についての解決策を見つけることができません。私はそれらの特定の情報が欲しいです:

  • (userIdを介して)アクションを実行したユーザー、
  • アクションの説明(ログインまたはログアウト)、
  • 現在のタイムスタンプ。

私は可能な限り簡単な解決策を探しています。ユーザーログインフォームのレンダリング機能を変更することで、ユーザーログインの情報を正常に記録できましたが、ログアウトに関しては惨めに失敗しました。やっぱりひどいアイデアだとは思いますが、これ以上良いアイデアは思いつきませんでした。助言がありますか?前もって感謝します。

4

1 に答える 1

1

hereを見ると、データベースにログを記録するために使用する成功ハンドラーと失敗ハンドラーを定義できると書かれています。また、リファレンス ドキュメントで定義されているハンドラー パラメーターを見つけることもできます。

ログイン

最初に security.context と entityManager をパラメーターとして取得し、両方を使用してログインしているユーザーを判別するサービスを作成します。次に、このサービスが success_handler パラメーターに追加され、ユーザーがログインした後に呼び出されます。

ログアウト

security.context にはユーザーに関する情報がなく、それを使用してログアウトしているユーザーを特定できないため、これはもっと難しいと思います。handlersパラメータが実際に何であるかを調べたい場合があります。ログアウトの処理中に呼び出されるハンドラーである可能性があるため、使用できます。もちろん、成功ハンドラーがなければ、ログアウトが成功したことを確認できないため、失敗したログアウトをログに記録する可能性があります。一方、どこかからセッション ID を取得して (これも security.context かもしれません)、代わりにこれをログに記録することができます。

于 2012-08-07T20:05:48.093 に答える