【发布时间】:2015-05-18 02:24:09
【问题描述】:
我已经尝试了一整天来解决这个问题。就这样吧。
我正在使用Symfony version 2.6.4
我最初有一个使用 friendsofsymfony/user-bundle": "2.0.*@dev 的登录和注册表单
我刚刚添加了"hwi/oauth-bundle": "0.4.*@dev" 以允许 facebook 注册/登录。
问题是,如果我使用常规表单注册,然后尝试使用 facebook 登录,我会收到以下错误。 (出于显示目的,我更改了一些值):
An exception occurred while executing 'INSERT INTO users (username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expired, expires_at, confirmation_token, password_requested_at, roles, credentials_expired, credentials_expire_at, facebook_id, facebook_access_token) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params ["10155387178995713", "10155387178995713", "someemail@hotmail.com", "someemail@hotmail.com", 1, "fgf90m9yxzc4ggkgwg8cgk0g4sk0ocg", "10155345628995713", null, 0, 0, null, null, null, "a:0:{}", 0, null, "10155387178995713", "CAALREhhNZBmEBANQjAMjlrAHZduiwOidsUyVwCI0hQkSj7W9imZC2xlL76jGH3MA10yUBkF2kSCpr9OdBbUSPoKkriZA2FdVlAhFsfXBNjBYiywzodiWYKGrcVMVsMVIVbk6XDUFVDtighTDYKuT9fZBm96VUSZBNSOE92RJMNwtAZCwBKrerAKGB11gNLNqDzNOfnBgih6TQDhacd9xSOC"]:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'someemail@hotmail.com' for key 'UNIQ_1483A5E9A0D96FBF'
如果我使用常规表单注册,然后也使用常规表单签名,我会收到预期的“电子邮件已在使用中”
如果我先用 facebook 注册,然后用 facebook 登录,它就可以正常工作。
使用标准登录表单时的用户名/用户名_cononical 设置与使用 facebook 注册时不同。目前普通登录表单下的用户名生成随机字符串。
无论哪种方式,我都不关心用户名。如果它更新到 facebook 给出的那将是很棒的。我只使用电子邮件登录,但将用户名条目保留在数据库中,因为它是 FOSUserBundle 的标准
我已按照此处的说明进行操作:https://gist.github.com/danvbe/4476697
我也读过这个:http://m2mdas.github.io/blog/2013/11/21/integrate-hwioauthbundle-with-fosuserbundle/,但还是没有运气。
任何帮助将不胜感激。如果需要,很高兴发布配置信息或代码。
谢谢
【问题讨论】:
标签: php symfony doctrine fosuserbundle hwioauthbundle