Symfony2 "此身份验证方法需要会话"登录检查错误


Symfony2 "This authentication method requires a session" error on login check

我一直在尝试按照Symfony的书中的说明实现简单的表单登录,但我被困在登录。每当我尝试登录时,都会从AbstractAuthenticationListener::handle抛出"此身份验证方法需要会话"错误。我搜索了Symfony的书和食谱,谷歌,但没有找到答案,甚至一些相关的问题。

这是我误解了书中的一些东西还是我的服务器配置错误?

如果你需要代码提取,不要介意问…

security.yml

security:
  encoders:
    Common'Bundle'UserBundle'Entity'User:
      algorithm: bcrypt
      cost:      10
  providers:
    main:
      entity: { class: CommonUserBundle:User }
  firewalls:
    main:
      pattern:   ^/
      provider:  main
      anonymous: ~
      simple_form:
        authenticator: simple_authenticator
        login_path:   /Connexion
        check_path:   /Connexion/verifier
      logout:
        path:   /Deconnexion
        target: /
      remember_me:
        key:      "%secret%"
        lifetime: 2592000
        path:     /
        domain:   ~

config.yml

  framework:
    secret:    "%secret%"
    fragments: { path: /_fragment }
    router:
      resource: "%kernel.root_dir%/config/routing.yml"
    validation:
      enable_annotations: true
    templating:
      engines: ['twig']
    default_locale: "%locale%"
    http_method_override: true

您需要启用PHP会话来保持用户记录。您的config.yml文件显示它未启用,在framework根级别内添加session部分:

默认配置:

framework:
    # ...
    session: ~

查看官方文档以了解如何配置会话存储:http://symfony.com/doc/current/reference/configuration/framework.html#session

For Symfony 4

编辑config/包/framework.yaml

并添加

framework:
    session:
        handler_id: ~