Symfony 如何结合FosUserBundle和HwiothBundle登录和注册
我正在制作一个登录页面和一个注册页面 使用FosUserBundle和HWIOAuthBundle+Symfony2.4使用composer 我想要的行为是: 在登录页面->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 跟随
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: