4

FOSUserBundleとSymfony2を使用して、

私のサイトでは、ログインしているユーザーの役割に応じて、ログアウトを2つの異なるページに交互にリダイレクトさせたいと思います。

だから、私はこのようなことをしたいです:

{% if is_granted("ROLE_PREMIUM") %}
  <a href="{{ path('fos_user_security_logout_premium') }}">{{ 'layout.logout'|trans({}, 'FOSUserBundle') }}</a>
{% else %}
  <a href="{{ path('fos_user_security_logout') }}">{{ 'layout.logout'|trans({}, 'FOSUserBundle') }}</a>
{% endif %}

そして、どういうわけか、次のようなことをします。

<route id="fos_user_security_logout" pattern="/logout">
    <default key="_controller">FOSUserBundle:Security:logout</default>
</route>
<route id="fos_seller_security_logout" pattern="/logoutPremium">
    <default key="_controller">FOSUserBundle:Security:logoutPremium</default>
</route>

しかし、すべてのログインはで行われるためconfig.yml、ログインとログアウトに関するこのすべての構成を配置すると、2番目のトリガーを構成して実装する方法がわかりません。実際、私がやりたいのは、役割に応じてユーザーを2つの異なるページにリダイレクトすることだけです。残りはすべて同じままにする必要があります。

ここに置くものはありsecurity.ymlますか?

        logout:
          path:   /logout
          target: /main/user

どうもありがとう

4

1 に答える 1

4

を構成に追加できCustomLogoutHandlerますsecurity.yml

firewalls:
    main: # - the name of your secure area
        logout:
            path:   /logout
            target: /
            success_handler: your_bundle.custom_logout_handler

your_bundle.custom_logout_handlerたとえば、同様の _target_url パラメータに従って、ユーザーをログアウトしてリダイレクトするのはどこですか。

見るSymfony/Component/Security/Http/Logout

于 2012-08-28T08:54:37.180 に答える