Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 如何结合FosUserBundle和HwiothBundle登录和注册_Symfony_Fosuserbundle_Symfony 2.3_Hwioauthbundle - Fatal编程技术网

Symfony 如何结合FosUserBundle和HwiothBundle登录和注册

Symfony 如何结合FosUserBundle和HwiothBundle登录和注册,symfony,fosuserbundle,symfony-2.3,hwioauthbundle,Symfony,Fosuserbundle,Symfony 2.3,Hwioauthbundle,我正在制作一个登录页面和一个注册页面 使用FosUserBundle和HWIOAuthBundle+Symfony2.4使用composer 我想要的行为是: 在登录页面-> users can login using Google, Facebook or Login Through a Form 在注册页面-> users can Register using Google, Facebook or Register Through a Form 跟随

我正在制作一个登录页面和一个注册页面 使用FosUserBundle和HWIOAuthBundle+Symfony2.4使用composer 我想要的行为是: 在登录页面->

        users can login using Google, Facebook or Login Through a Form 
在注册页面->

        users can Register using Google, Facebook or Register Through a Form 
跟随这篇文章

作者建议重写HWIOAuthBundles Login.html.twgI,并在中重写它 app/Resources/HWIOAuthBundle/views/Connectand插入FosUserBundle表单细枝代码,但当我尝试插入该代码时,会出现错误: 变量last_username在第15行的HWIOAuthBundle:Connect:login.html.twig中不存在

这意味着HWIOauthBundle未使用/包括FOSUserbundle

据我所知,你只能扩展一个BaseBundle 问题: 这可能吗? 2如果不是,那么可以证明具有所需行为的正确捆绑包是什么

任何帮助都将不胜感激

--编辑- 我能够将这两种登录方法结合起来,请参见m2mdas下面的答案 但仍然无法将这两种注册方法结合起来

变通办法 如果我输入下面的url,它就会工作 …app_dev.php/secure_area/connect/google 因此,我需要创建一个到URL的自定义路由 我试过了

my_registration:
    path: /secure_area/registration
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: /secure_area/connect/google
        permanent: true
但这让我想到 …app_dev.php/secure_area/connect 而不是 …app_dev.php/secure_area/connect/google

如期
TIA

嗯,我没有很好地解释它。看起来:我实际上是说你应该复制/修改这个部分

{% for owner in hwi_oauth_resource_owners() %}
<a href="{{ hwi_oauth_login_url(owner) }}">{{ owner | trans({}, 'HWIOAuthBundle') }}</a> <br />
{% endfor %}
我也有。你可以查一下作为参考

更新:关于登记表的答复

这就是配置选项发挥作用的地方。默认情况下,它设置为fos_user.registration.form,内置FOSUserBundle表单将显示该表单。如果确认选项设置为true,则在OAuth身份验证成功后,HWIOAuthBundle将重定向到http://your.site.com/connect/registration/{userid}呈现FOSUserBundle注册表单的路径


如果您有基于fos_user.registration.form的自定义注册表,则必须将注册表的值设置为表单的服务名称。然后,您必须自定义以匹配注册页面布局。将普通注册页面和OAuth注册页面组合到同一个路径中对我来说似乎没有必要。

好吧,我没有解释清楚,似乎是:我实际上的意思是你应该复制/修改该部分

{% for owner in hwi_oauth_resource_owners() %}
<a href="{{ hwi_oauth_login_url(owner) }}">{{ owner | trans({}, 'HWIOAuthBundle') }}</a> <br />
{% endfor %}
我也有。你可以查一下作为参考

更新:关于登记表的答复

这就是配置选项发挥作用的地方。默认情况下,它设置为fos_user.registration.form,内置FOSUserBundle表单将显示该表单。如果确认选项设置为true,则在OAuth身份验证成功后,HWIOAuthBundle将重定向到http://your.site.com/connect/registration/{userid}呈现FOSUserBundle注册表单的路径


如果您有基于fos_user.registration.form的自定义注册表,则必须将注册表的值设置为表单的服务名称。然后,您必须自定义以匹配注册页面布局。对我来说,将普通注册页面和OAuth注册页面组合到同一个路由中似乎没有必要。

谢谢@m2mdas。是的,我也做了,只是不确定它是否是包含Hwiouth代码的正确位置。注册部分让我困惑。我希望用户能够使用1个Google、Facebook注册,此功能位于url..../app_dev.php/secure_area/connect/或2个FosUser注册表单。如何将上述两个注册选项组合成一个路径/路由?将普通注册页面和OAuth注册页面组合成同一个路由对我来说似乎没有必要。这正是我正在尝试的,因为我们希望没有google或facebook的用户使用我们的FormIn登录。在这两个页面中,注册表单几乎相同,除了OAuth相关字段,如用户id等,这些字段对于普通注册页面是可选的。在不同的情况下呈现相同的形式是合理的。您的需求当然是可行的,但它需要大量的工作,甚至可能需要修改核心HWIOAuthBundle代码。fos_user.registration.form现在是fos_user.registration.form.type in FOSUSerBundle v2:谢谢@m2mdas。是的,我也做了,只是不确定它是否是包含Hwiouth代码的正确位置。注册部分让我困惑。我希望用户能够使用1个Google、Facebook注册,此功能位于url..../app_dev.php/secure_area/connect/或2个FosUser注册表单。如何将上述两个注册选项组合成一个路径/路由?将普通注册页面和OAuth注册页面组合成同一个路由对我来说似乎没有必要。这正是我正在尝试的,因为我们希望没有google或facebook的用户使用我们的FormIn登录。在这两个页面中,注册表单几乎相同,除了OAuth相关字段,如用户id等,这些字段对于普通注册页面是可选的。在中呈现相同的形式 不同的情况是合理的。您的要求当然是可行的,但需要大量工作,甚至可能需要修改核心HWIOAuthBundle代码。fos_user.registration.form现在是fos_user.registration.form.type in FOSUSerBundle v2: