/** * Create a new profile from Github data. * * @param \Laravel\Socialite\AbstractUser $userDetails * @param \App\User $user * @param string $token * * @return \App\Profile */ public function createFromGithubData(OAuthUser $details, User $user, $token) { $profile = $this->getNew(); $profile->uid = $details->getId(); $profile->username = $details->getNickname(); $profile->name = $details->getName(); $profile->email = $details->getEmail(); $profile->location = $details['location']; $profile->description = $details['blog']; $profile->image_url = $details->getAvatar(); $profile->access_token = $details->token; $profile->user_id = $user->id; $profile->save(); return $profile; }
/** * Create a new user in the database using GitHub data. * * @param \Laravel\Socialite\AbstractUser $data * * @return \App\User */ public function createFromGithubData(OAuthUser $data) { $user = $this->getNew(); $username = $data->getNickname(); $isAvailable = is_null($this->findByUsername($username)); $isAllowed = $this->usernameIsAllowed($username); $user->username = $username; if (!$isAvailable or !$isAllowed) { $user->username .= '_' . str_random(3); Session::flash('username_required', true); } $user->email = $data->getEmail(); $user->photo = $data->getAvatar() ?: ''; $user->save(); Session::flash('password_required', true); return $user; }