Symfony 如何创建第二个form_登录来验证用户

Symfony 如何创建第二个form_登录来验证用户,symfony,security,firewall,Symfony,Security,Firewall,我想创建第二个form_登录来验证我的用户,但模式相同。 这是我安全的一部分 frontend: context: frontend pattern: ^/ form_login: provider: fos_clientbundle csrf_provider: form.csrf_provider login_path : client_login check_path : client_check

我想创建第二个form_登录来验证我的用户,但模式相同。 这是我安全的一部分

frontend:
    context: frontend
    pattern: ^/
    form_login:
        provider: fos_clientbundle
        csrf_provider: form.csrf_provider
        login_path : client_login
        check_path : client_check
        failure_path : null
        default_target_path : client_userprofile   
    form_login:
        provider: fos_clientbundle
        csrf_provider: form.csrf_provider
        login_path : ecommerce_front_checkout
        check_path : ecommerce_check
        failure_path : null
        default_target_path : ecommerce_front_checkout                     
    logout:       
      path : client_logout
      target : client_login
    anonymous:    true
但是它不起作用!! 我在网上搜索过,但没有找到解决办法

这将要求用户可以通过主登录页面进行连接,并且它可能位于另一个页面上,如电子商务页面

我希望你能帮助我。
非常感谢

您可以创建两个不同的控制器(或操作),这两个控制器都扩展了BaseSecurityController,只需覆盖renderLogin操作(如果需要覆盖某些内容,还可以覆盖任何其他操作)

在路由中定义两个控制器

routing.yml:

login:
    path: /{_locale}/login
    defaults: { _controller: ApplicationSonataUserBundle:SecurityFOSUser1:login }

loginForm:
    path: /{_locale}/login_frm
    defaults: { _controller: ApplicationSonataUserBundle:AnotherSecurityFOSUser1:login }
然后将表单显示在细枝中:

{% render url('loginForm') %}

您可以创建两个不同的控制器(或操作),既扩展BaseSecurityController,又只覆盖renderLogin操作(如果需要覆盖某些内容,还可以覆盖任何其他操作)

在路由中定义两个控制器

routing.yml:

login:
    path: /{_locale}/login
    defaults: { _controller: ApplicationSonataUserBundle:SecurityFOSUser1:login }

loginForm:
    path: /{_locale}/login_frm
    defaults: { _controller: ApplicationSonataUserBundle:AnotherSecurityFOSUser1:login }
然后将表单显示在细枝中:

{% render url('loginForm') %}

我找到了解决办法。很简单!! 在我的第二个表单中,我必须在表单中添加默认的\u目标\u路径和失败\u路径,例如:

<input type="hidden" name="_target_path" value="ecommerce_front_checkout" />
<input type="hidden" name="_failure_path" value="ecommerce_front_checkout" />


非常感谢你的帮助

我找到了解决办法。很简单!! 在我的第二个表单中,我必须在表单中添加默认的\u目标\u路径和失败\u路径,例如:

<input type="hidden" name="_target_path" value="ecommerce_front_checkout" />
<input type="hidden" name="_failure_path" value="ecommerce_front_checkout" />


非常感谢你的帮助

如果是相同的模式,为什么不使用相同的形式?我想你可以说得更具体一些。阅读文档也会对你有所帮助。在我看来,这是您正在寻找的东西:是的,这是相同的模式。事实上,我有一个页面,其中只有表单登录才能连接。此页面可以从菜单访问。我还有一个页面,其中有一个下订单的流程。在流程的第二步中,还有一个块,其中表单登录也可以连接。好的,然后你需要读一读:好的,谢谢。我看这篇文章!!我刚才看了,但是这个解决方案不适合我的情况,或者我不理解这个方法的意义!!此方法解释如何使用api密钥对用户进行身份验证!!如果是相同的模式,为什么不使用相同的形式?我想你可以说得更具体一些。阅读文档也会对你有所帮助。在我看来,这是您正在寻找的东西:是的,这是相同的模式。事实上,我有一个页面,其中只有表单登录才能连接。此页面可以从菜单访问。我还有一个页面,其中有一个下订单的流程。在流程的第二步中,还有一个块,其中表单登录也可以连接。好的,然后你需要读一读:好的,谢谢。我看这篇文章!!我刚才看了,但是这个解决方案不适合我的情况,或者我不理解这个方法的意义!!此方法解释如何使用api密钥对用户进行身份验证!!问题是,如果身份验证成功,则重定向不同。在my security.yml中,defaut\u目标路径不同。问题是,如果身份验证成功,则重定向不同。在my security.yml中,defaut\u目标路径不同