Symfony3在传递登录表单

时间:2016-04-11 09:25:28

标签: php security login symfony

我是Symfony的新手并且坚持安全部分。 我已经阅读了有关用户安全性的文档: http://symfony.com/doc/current/book/security.html

我已阅读有关如何创建登录表单的文档: http://symfony.com/doc/current/cookbook/security/form_login_setup.html

所以,当我使用httpbasic登录时,一切正常(除了明显退出)。

如果我使用我的表单登录,那么当我使用正确的凭据时,它会让我通过。但在成功登录后我仍然是匿名的..

我的security.yaml:

security:
encoders:
    Bundle\Entity\Users:
        algorithm: bcrypt
    Symfony\Component\Security\Core\User\User: plaintext
providers:
    our_db_provider:
        entity:
            class: Bundle:Users
            property: email
    in_memory:
        memory:
            users:
                admin:
                    password: admin
                    roles: 'ROLE_ADMIN'
                user1:
                    password: user
                    roles: 'ROLE_USER'
firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    default:
        pattern: ^/backend
        anonymous: ~
        form_login:
           login_path:   login
           check_path:   check
           default_target_path: /backend
        provider: our_db_provider
        logout:
           path: logout
           target: /
           success_handler: ~
           invalidate_session: true

    main:
        anonymous: ~

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

View与symfony文档中的代码相同:

        <form action="{{ path('check') }}" class="form-signin form-group" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="_username" value="{{ last_username }}" class="form-control"/>

        <label for="password">Password:</label>
        <input type="password" id="password" name="_password" class="form-control"/>

        <button class="btn btn-success" type="submit">login</button>
    </form>
</div>

为什么登录后我没有正确登录?

有人可以帮助我或者给我一个如何解决的提示吗?

感谢您的建议 迈克尔

编辑: 我在发布这个问题后解决了我的问题......!

唯一的问题是我的config.yaml中的默认设置会话handler_id。 为了解决这个问题,请在config.yaml中进行更改:

framework:
    session:
        handler_id:  session.handler.native_file
        save_path:   "%kernel.root_dir%/../var/sessions/%kernel.environment%"

为:

session:
    handler_id: ~

0 个答案:

没有答案