2016-11-13 16 views
0

FOSユーザーバンドルは、クイックガイドの指示どおりに統合されています。私はログインしてリダイレクトすると何らかの理由でセッションが失われ、私は匿名ユーザーに戻ります。FOSユーザーバンドルはログに記録されたセッションを維持しません

これは私が戻ってリダイレクトするよ前に私がログインしたときに、私が得るものです: enter image description here

をあなたは私が正常にログインしていますし、ホームページにリダイレクトする必要があります見ることができるように。しかし、私がホームページにいるとき、私はユーザがログインしているかどうかをチェックするので、私はログインにリダイレクトされます。だから、何とかそれは私がログインしていることを覚えていません。

これはのsecurity.xml

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

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 
    # http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers 
    providers: 
     in_memory: 
      memory: ~ 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       check_path: /login_check 
       login_path: /login 
       provider: fos_userbundle 
       default_target_path:/
      logout:  true 
      anonymous: true 

    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/, role: ROLE_ADMIN } 

config.yml

fos_user: 
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' 
    firewall_name: main 
    user_class: UserBundle\Entity\User 

のための私の構成である私は明らかにアプリのカーネルにバンドルを追加し、ユーザーエンティティを作成しました。 doctrineコマンドを実行すると、ユーザーテーブルなどが正常に作成されます。

このプロジェクトは別のプロジェクトでうまく動作していますが、このプロジェクトではドッカーを使用しています。これは問題を引き起こすでしょうか?

編集:

if(!$this->container->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')){ 
      return $this->redirect($this->generateUrl('fos_user_security_login')); 
     } 

とツールバーがlogin_checkリダイレクト後に匿名として私を示しています これは、私は、ユーザーがログインしているかどうかを確認するために使用するコードです。

enter image description here

+0

save_path値を変更しましたか?また、デバッグツールバーはリダイレクト後にあなたに何を伝えますか?あなたのユーザー名はまだ表示されていますか? – Glukose

+0

@Glukose私は自分の答えを更新しました。 – Christophe

答えて

0

それは私のsave_pathは私のローカルマシンに搭載されている/var/www/project下にある場合、それは動作しないだろうと私の注意に持って来られました。

だからconfig.ymlで、私は handler_idをコメントアウトし、我々はあなたが使用しているコードは、「ユーザーがログインされているかどうかをチェックする」を参照してくださいすることができ ~

関連する問題