FOS用户捆绑包不会记录会话

时间:2016-11-13 10:10:55

标签: php symfony docker

我已经集成了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

我显然已将捆绑包添加到app内核并创建了用户实体。当我运行doctrine命令时,它成功创建了用户表等...

我在另一个项目中工作正常,唯一的区别是对于这个项目我使用的是docker。这会导致问题吗?

编辑: 这是我用来检查用户是否登录的代码:

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

1 个答案:

答案 0 :(得分:0)

我注意到,如果我的save_path位于/var/www/project下,它安装在我的本地计算机上,则无效。

所以在config.yml中我注释了handler_id并将save_path值更改为~