Symfony FOSUserBundle不会对用户进行身份验证,也不会建议错误的凭据

时间:2014-04-02 14:46:56

标签: symfony authentication login fosuserbundle symfony-forms

我已安装FOSUserBundle,我看到它处于活动状态,我的登录页面也可以。当我尝试以用户身份登录时,问题出现了。如果我插入错误的凭据,没有任何反应,我将被重定向到登录页面,而不像往常一样发出“坏凭据”。如果我插入正确的用户信息,我将被重定向到主页并且我没有登录,在Symfony工具栏中我以匿名身份验证并且我只有AnonymousToken。

这是我的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: fos_user_security_login
                check_path: fos_user_security_check
                csrf_provider: form.csrf_provider
            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: ***\***Bundle\Entity\User

在Symfony日志中,我可以阅读:

security.INFO: User "sampleuser" has been authenticated successfully [] []

但这显然没有发生。

1 个答案:

答案 0 :(得分:0)

我刚刚找到解决问题的方法。原因是LswMemcacheBundle, 我已经安装了memcached php扩展程序,但我还没有在我的系统上运行memcache。我已经运行它,之后所有登录/注销功能都已开始正常工作。