8

symfony2 と FOSUserBundle で非常に奇妙な問題が発生しています。

/en/logout でログアウトできますが、/nl/logout または /fr/logout ではできません。

nl または fr でログアウトしようとすると、次のようになります。

You must activate the logout in your security firewall configuration.

私はそれを構成しましたが。/en/logout が機能し、残りが機能しない理由が頭に浮かびません。

これは私のコードです:

security.yml

security:
providers:
    fos_userbundle:
        id: fos_user.user_provider.username_email

encoders:
    FOS\UserBundle\Model\UserInterface: sha512

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
            check_path: fos_user_security_check
            default_target_path: /%locale%/login
            always_use_default_target_path: true
            failure_path:   /%locale%/login
        logout:
            path: /%locale%/logout
            target: homepage
        anonymous:    true

ルーティング.yml

user bundle > FOS
    fos_user_security:
        resource: "@FOSUserBundle/Resources/config/routing/security.xml"
        prefix: /{_locale}
        requirements:
            _locale: fr|nl|en

コントローラ

    class LoginController extends Controller {

    /**
     * @Route("{_locale}/logout-test", name="logout", defaults={"_locale"="en"} , requirements = {"_locale" = "fr|en|nl"})
     * @Template()
     */
    public function logoutAction()
    {
        $test = "";
        #throw new \RuntimeException('You must activate the logout in your security firewall configuration.');
        #return $this->redirect($this->generateUrl('homepage'));;
    }
}

誰か私を助けてくれますか、または次にどこを見るべきか教えてくれますか? それは大歓迎です

4

2 に答える 2

31

構成ファイルでは、URL の代わりにルートを使用する必要があります。「/」で始まる場合は URL として扱われ、そうでない場合はルートとして扱われます。URL の代わりにルートを使用すると、ロケールは自動的に処理されます。たとえば、私の security.yml 構成は次のとおりです。

security:
  public:
    pattern:   ^/
    form_login:
      login_path: fos_user_security_login
      check_path: fos_user_security_check
      provider: fos_userbundle
      csrf_provider: form.csrf_provider
      default_target_path: index
    anonymous: true
    logout:
      path: fos_user_security_logout
      target: index
于 2013-04-26T15:37:53.810 に答える