我正在创建一个登录页面和一个注册页面
使用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
关注此帖http://m2mdas.github.io/blog/2013/11/21/integrate-hwioauthbundle-with-fosuserbundle/
作者建议覆盖HWIOAuthBundles Login.html.twg
我在app / Resources / HWIOAuthBundle / views / Connect中覆盖它
并插入FosUserBundle表格树枝代码(http://pastebin.com/8FS3Smta)
但是当我尝试那样的时候
它给出了错误:HWIOAuthBundle中不存在变量_2385609:第15行连接:login.html.twig
这意味着HWIOauthBundle不使用/包括FOSUserbundle
根据我的理解,你只能扩展一个BaseBundle
问题:
1)这甚至可能吗?
2)如果没有,那么可以证明所需行为的正确捆绑包是什么
任何帮助将不胜感激
---编辑---
我能够结合2种登录方法(请参阅下面的m2mdas答案),但仍然无法结合2种注册方法
解决方法
如果我输入以下网址就可以了
.... 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 /连接
并不是
.... app_dev.php / secure_area /连接/谷歌
如预期
TIA
1 回答
好吧,我似乎没有解释好:)我实际上意味着你应该复制/修改部分
HWIOAuthBundle:Connect:login.html.twig并将其置于FOSUserBundle:Security:login.html.twig显示的FOSUserBundle:Security:login.html.twig文件中 . 所以当前的登录URL将是http://yoursite.com/login而不是http://yoursite.com/connect .
但是还有一个额外的步骤,在
app/config/security.yml
中你必须将oauth防火墙的login_path
选项更改为FOSUserbundle的登录URL,它通常是/login
,例如我也有pushed a branch in the MinimalSecurityBundlesSetup repo . 您可以将其作为参考 .
Update: the answer regarding to registration form
那是registration_form配置选项发挥作用的地方 . 默认情况下,它设置为
fos_user.registration.form
,内置FOSUserBundle
表单 . 如果confirmation
选项设置为true,则成功执行OAuth身份验证HWIOAuthBundle
将重定向到http://your.site.com/connect/registration/{userid}
路由,其中将呈现FOSUserBundle
注册表单 .如果您有基于
fos_user.registration.form
(as documented in the doc)的自定义注册表单,则必须将registration_form
的值设置为表单服务名称的名称 . 然后,您必须自定义HWIOAuthBundle:registration.html.twig以匹配您的注册页面布局 . 正常注册页面和OAuth注册页面组合到同一路线似乎对我来说是不必要的 .