登录Symfony2后循环重定向

时间:2016-02-23 04:01:57

标签: php symfony

我试图在symfony2中创建一个登录表单

当输入正确的信息时,重定向进入循环并显示一条消息:"没有收到数据"或"连接重置"显示。如果我输入了错误的信息,则显示消息:Bad Credencial。

我的security.yml

Segue o security.yml que criei

 dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login_firewall:
        pattern:  ^/login$
        anonymous: ~

    secured_area:
        pattern: ^/
        provider: meu_provider
        form_login:
            login_path: login
            check_path: login_check                
        logout:
            path: logout
            target: homepage

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_USER }

$ user-> getRoles()

中的用户IS ROLE_USER

谢谢!

对不起我的英文!

3 个答案:

答案 0 :(得分:1)

在cookbook http://symfony.com/doc/current/cookbook/security/form_login_setup.html中,防火墙中定义了包含登录表单和检查路径(在示例中相同)的防火墙,匿名用户可以访问该防火墙。

在您的配置中只能访问/ login(line:pattern:^ / login $)。

答案 1 :(得分:0)

尝试在 login_firewall部分

中将anonymous: ~更改为security: false

答案 2 :(得分:0)

您的login和login_check路由应位于您正在使用的防火墙下。 换句话说,你必须删除/评论这3行:

    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    #login_firewall:
    #    pattern:  ^/login$
    #    anonymous: ~

    secured_area:
        pattern: ^/
        provider: meu_provider
        form_login:
            login_path: login
            check_path: login_check                
        logout:
            path: logout
            target: homepage

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_USER }

这一行 - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } - 足以让用户在没有重定向循环的情况下使用登录表单。