繁体   English   中英

Laravel 5.1登录带有Socialite的多社交网络插入同一个名称字段

[英]Laravel 5.1 login Multi Social Network with Socialite insert into the same name field

我想使用facebook,google和twitter帐户创建登录表单。 第一步,我可以使用Socialite Package创建它们。 第二步,我可以获取用户的信息并将其插入MySQL数据库 我的问题是我第一次使用Facebook帐户成功登录,然后注销。 之后,我改用Google帐户登录。 发生这样的错误:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'users_email_unique' (SQL: insert into `users` (`name`, `updated_at`, `created_at`) values (SrengKhorn, 2015-09-22 02:44:26, 2015-09-22 02:44:26))

这是我的users表: 在此处输入图片说明

而且我发现,如果删除具有相同用户名的先前记录,则可以使用其中任何一个登录而不会出错。 您知道要解决此问题吗?

好。 逻辑很简单。 您正在尝试插入空白电子邮件。 是的,毫不奇怪,电子邮件是一个独特的领域。 无法重复输入空白电子邮件。 因此,只需在尝试登录用户时添加电子邮件即可。您可以使用$user->email 只需存储该电子邮件即可。 再次登录时,只需检查用户是否已经存在相同的电子邮件即可。 如果不是,只需输入值,否则登录用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM