Wil*_*sMD 5 php security session symfony
我一直在尝试按照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: ~
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
您需要启用PHP会话以保持用户登录.您的config.yml文件显示为未启用,session在framework根级别中添加一个部分:
这是默认配置:
framework:
# ...
session: ~
Run Code Online (Sandbox Code Playgroud)
查看官方文档以了解如何配置会话存储:http://symfony.com/doc/current/reference/configuration/framework.html#session
小智 6
对于Symfony 4
编辑config/packages/framework.yaml
并添加
framework:
session:
handler_id: ~
Run Code Online (Sandbox Code Playgroud)