拉拉维尔 5 社交名媛重复条目


Laravel 5 Socialite Duplicate entry

我实现社交名流与手动注册一起,其中使用Facebook注册是用户的选项。 但我注意到,如果用户先注册手动注册并注销,然后返回并使用Facebook注册,则会产生错误

SQLSTATE[23000]:完整性约束冲突:1062 重复条目"

这是我当前的用户存储库

namespace App'Repositories;
use App'User;
class UserRepository{
    public function findByUsernameOrCreate($userData)
    {
       return User::firstOrCreate([
         'first_name' => $userData->first_name,
         'last_name' => $userData->last_name,
         'email' => $userData->email
       ]);
    }
}

我最近遇到了这个问题。我正在测试一个预注册用户登录Facebook的能力,并在他们登录时更新他们的头像和电子邮件。

假设您可以通过他们的电子邮件地址检查现有(非Facebook)用户。

$user = User::where('email', $userData->email)->first();
if ($user){
  // Update existing user with facebook data.
  $user->email = $userData->email;
  // Any other fields you want to update.
  $user->avatar = $userData->avatar;
  $user->save();
  return $user;
}

然后你的原始功能在这里。

Mark是对的,但是每次用户与Facebook连接时,数据都会更新。以下是一些改进:

    $authUser = User::where('email', $existingUser->email)->first();
    if ($authUser){
        // Check and update if Facebook data doesn't exists
        if(!($authUser->facebook_id)){
            $authUser->facebook_id = $existingUser->id;
            $authUser->avatar = $existingUser->avatar;
            $authUser->save();
        }
        return $authUser;
    }
    // following by your function here...
相关文章:
  • 没有找到相关文章