2016-11-13 61 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 

我明明添加了捆綁到應用程序和內核創建了用戶實體。當我運行教條命令它成功地創建用戶表,等等...

我有這個在另一個項目中工作正常,唯一的區別是,這個項目我使用碼頭。這會導致問題嗎?

編輯: 這是我用它來檢查,如果用戶登錄的代碼:

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

我們可以看到您使用的代碼「以檢查用戶登錄或不」?調試工具欄在重定向之後告訴你什麼?你還有你的用戶名顯示嗎? – Glukose

+0

@Glukose我更新了我的答案。 – Christophe

回答

0

它帶給我的注意,如果我的save_path是安裝在我的本地機器上/var/www/project下它不會工作。

所以在config.yml我註釋掉handler_id,改變了save_path~