public function findByUserNameOrCreate($userData, $provider) { if (!isset($userData->email)) { $userData->email = time() . '*****@*****.**'; } $user = User::where('provider_id', '=', $userData->id)->first(); // $emailExists = User::where('email', '=', $userData->email)->first(); // if(!$user && $emailExists) { // return false; // } if (!$user) { switch ($provider) { case 'facebook': $user = User::create(['provider_id' => $userData->id, 'provider' => $provider, 'name' => isset($userData->name) ? $userData->name : null, 'username' => isset($userData->nickname) ? $userData->nickname : null, 'email' => isset($userData->email) ? $userData->email : null, 'avatar' => isset($userData->avatar) ? $userData->avatar : null, 'gender' => isset($userData->user['gender']) ? $userData->user['gender'] : null, 'birthday' => isset($userData->user['birthday']) ? $userData->user['birthday'] : null, 'locale' => isset($userData->user['locale']) ? $userData->user['locale'] : null]); break; case 'twitter': $user = User::create(['provider_id' => $userData->id, 'provider' => $provider, 'name' => isset($userData->name) ? $userData->name : null, 'username' => isset($userData->nickname) ? $userData->nickname : null, 'email' => isset($userData->email) ? $userData->email : null, 'avatar' => isset($userData->avatar) ? $userData->avatar : null, 'locale' => isset($userData->user['lang']) ? $userData->user['lang'] : null]); break; default: $user = User::create(['provider_id' => $userData->id, 'provider' => $provider, 'name' => isset($userData->name) ? $userData->name : null, 'username' => isset($userData->nickname) ? $userData->nickname : null, 'email' => isset($userData->email) ? $userData->email : null, 'avatar' => isset($userData->avatar) ? $userData->avatar : null]); break; } } $this->checkIfUserNeedsUpdating($provider, $userData, $user); return $user; }