5

「remember me」認証ではなく「通常」認証を使用して、成功ハンドラーと失敗ハンドラーを設定し、これをsecurity.ymlファイルに追加します。

form_login:
    # ...
    success_handler: authentication_handler
    failure_handler: authentication_handler

しかし、ユーザーのセッションが期限切れになり、再認証に「remember me」Cookie が使用される場合、「remember me」再認証をリッスンする方法が見つかりませんでした。どうすればこれを達成できるかについてのアイデアはありますか?

4

2 に答える 2

4

イベントのリスナーを作成しますsecurity.interactive_login。これは、単純なログインと「remember me」ログインの両方でトリガーされます ( Symfony\Component\Security\Http\Firewall\RememberMeListener.php@line:77 を参照)。

リスナーでは、Cookie をチェックすることで 2 つを分離できます。リスナーの詳細については、こちらを参照してください。

于 2012-07-11T11:01:45.323 に答える
0

私はこれを試していませんが、おそらくリスナーをアタッチできますが、サービス構成でサービスsuccess_handlerを注入するようにしてください。SecurityContext<argument>

次に、サービスメソッドに入るとすぐに次のことを行います。

if ( $this->securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED') ){
    // I am remembered visitor
}else{
    // I am the new visitor
}

繰り返しますが、これは単なるアイデアですが、できるように思えます...

于 2012-04-23T20:05:10.417 に答える