1

FOSUserBundle をインストールして構成しましたが、すべて正常に動作しています。しかし、ユーザーが / URI に移動したときに、symfony2 はユーザーがログインしているかどうかをチェックし、ログインしている場合は / URI にとどまり、プロファイル ページをロードし、そうでない場合は /login ページにリダイレクトする必要があります。

security.yml でこれを行う方法。

私はこれを試しました:

security:
encoders:
    FOS\UserBundle\Model\UserInterface: sha512

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
        fos_userbundle:
            id: fos_user.user_provider.username

firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                login_path: /login
                default_target_path: /
                csrf_provider: form.csrf_provider
            logout:       true
            anonymous:    true

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/*, role: ROLE_USER }

しかし、それは私に与えます:「GET /」のルートが見つかりません

4

1 に答える 1

1

ログイン後にページをリダイレクトする
security.yml

firewalls:
        main:
            pattern:    ^/
            form_login:
                provider:             fos_userbundle
                default_target_path:  /dashboard/                
            logout:     
                ........
                invalidate_session: false
            anonymous: ~

ルーティング ファイル内

applicationlogin_success:
  pattern: /dashboard/
  defaults: { _controller: SampleBundle:Default:FrontPage } 

BY USING default_target_path : ROUTING_PATTERN
リダイレクトします...

于 2013-09-25T09:20:45.527 に答える