Symfony防火墙form_login路径的PUT方法



我正在配置Symfony防火墙来处理登录表单。诀窍是检查路由必须使用 PUT 方法,而不是 POST。

这是我的防火墙配置中与我的问题相关的部分:

    firewalls:
        main:
            pattern: ^/
            anonymous: true
            provider: customer
            form_login:
                login_path: api_user_login
                check_path: api_user_login_connect

如您所见,我不使用路径,而是使用路由。主要是因为我需要指定check_path的方法(在我的情况下为 PUT(

这是我api_user_login_connect路线:

api_user_login_connect:
    path:     /users
    defaults: { _controller: ApiBundle:Login:connect }
    methods:  [PUT]

当我尝试访问/users时,Symfony发出错误,说没有/users的路由(在GET中我假设(。因此,我知道防火墙不允许我对check_path路由使用 PUT 方法,或者它不会从配置中读取整个路由,而只是读取路由中定义的路径。

如何告诉Symfony防火墙使用PUT请求检查凭据?

在我发布这个问题之前,我们找到了答案,这里是...

要使防火墙接受对 GET 以外的方法的登录检查,您必须使用此选项:post_only: false 。默认情况下这是真的。

firewalls:
    main:
        pattern: ^/
        anonymous: true
        provider: customer
        post_only: false

最新更新