使用HWIOAuthBundle自动注册用户

hsz*_*hsz 2 symfony hwioauthbundle

我成功地使用HWIOAuthBundleFOSUserBundle.

当我转到/login页面时,它会将我重定向到Google帐户,授权并返回带有填充数据的注册表单(密码字段除外).

是否可以通过省略注册表单自动注册用户?

在这种情况下,由于使用Google帐户进行身份验证,我们不需要密码.

我该如何实现这种情况?

And*_*ski 12

一个问题有点旧,但比以后更好.

您只需要创建一个自定义提供程序 - 如果要将该软件包与FOSUserBundle集成,则需要覆盖FOSUBUserProvider类.

HWIOAuthBundle/Security/Core/User目录中,您可以找到开箱即用的OAuthBundle中可用的所有提供程序.

要在连接时创建新用户,只需要覆盖FOSUBUserProvider(或EntityUserProvider等)提供程序类的loadUserByOAuthUserResponse()方法.正如您所看到的,如果在数据库中找不到用户,则default方法会抛出异常,您只需要调用userManager并创建新条目即可.

这与FOSFacebookBundle整合的情况完全相同(如果您这样做).

希望这个答案可以帮助你(特别是听起来有点混乱).

编辑:
我发布了一篇博客文章,解释了整合过程.