public function createOauthUser(OauthUser $oauthUser, string $oauthIdName, string $oauthId)
 {
     /** @var User $user */
     $user = $this->createModel(['name' => $oauthUser->getName(), 'email' => $oauthUser->getEmail(), $oauthIdName => $oauthId]);
     list($saved, $user) = $this->save($user->verify());
     if ($saved) {
         // fire registered via oauth event
         event(new RegisteredViaOauth($user));
         // put avatar upload in queue
         if ($avatar = $oauthUser->getAvatar()) {
             dispatch(new UploadOauthAvatar($user, $this->getLargeAvatar($avatar)));
         }
     }
     return $saved ? $user : null;
 }
 /**
  * @param \Laravel\Socialite\Contracts\User $user
  * @return array
  */
 private function githubUserToArray(GithubUser $user)
 {
     return ['id' => $user->getId(), 'name' => $user->getNickname(), 'email' => $user->getEmail(), 'github_id' => $user->getId(), 'github_url' => 'https://github.com/' . $user->getNickname(), 'image_url' => $user->getAvatar()];
 }
 /**
  * @param string                            $socialDriver
  * @param \Laravel\Socialite\Contracts\User $socialUser
  * @return SocialAccount
  */
 public function fillSocialAccount($socialDriver, $socialUser)
 {
     $this->socialAccount->fill(['driver' => $socialDriver, 'driver_id' => $socialUser->getId(), 'avatar' => $socialUser->getAvatar()]);
     return $this->socialAccount;
 }
Exemple #4
0
 /**
  * @param \Laravel\Socialite\Contracts\User $login
  * @return User
  */
 private function createOrFindUser($login)
 {
     $user = User::firstOrNew(['email' => $login->getEmail()]);
     if ($user->exists) {
         return $user;
     }
     $user->name = $login->getName() ?: $login->getNickname();
     $user->nickname = $login->getNickname();
     $user->password = Hash::make($login->getId() . time());
     $user->avatar = $login->getAvatar();
     $user->admin = User::count() == 0;
     $user->save();
     return $user;
 }
Exemple #5
0
 /**
  * Create new user if it does not exists.
  *
  * @param  Provider
  * @param  \Laravel\Socialite\Contracts\User
  * @return User
  */
 public static function findOrCreate(Provider $provider, SocialUser $socialUser)
 {
     // If user already exists reuse it
     $user = self::where(['uuid' => $socialUser->getId(), 'provider_id' => $provider->id])->withTrashed()->first();
     if ($user) {
         return $user;
     }
     // Create a new user
     $user = new static();
     $user->uuid = $socialUser->getId();
     $user->name = $socialUser->getName();
     $user->nickname = $socialUser->getNickname();
     $user->email = $socialUser->getEmail();
     $user->avatar = $socialUser->getAvatar();
     $user->provider_id = $provider->id;
     $user->language_id = app('language')->id;
     $user->role_id = Role::whereIsDefault(true)->firstOrFail()->id;
     $user->save();
     return $user;
 }
Exemple #6
0
 /**
  * Validate data from a social provider.
  *
  * @param  \Laravel\Socialite\Contracts\User
  * @return \Illuminate\Contracts\Support\MessageProvider
  */
 public function validate(SocialUser $socialUser)
 {
     $input = ['uuid' => $socialUser->getId(), 'name' => $socialUser->getName(), 'nickname' => $socialUser->getNickname(), 'email' => $socialUser->getEmail(), 'avatar' => $socialUser->getAvatar()];
     $customMessages = ['same' => _('Your account is not verified')];
     return Validator::make($input, $this->rules, $customMessages)->setAttributeNames($this->labels)->errors();
 }
Exemple #7
0
 private function populateSession(YoutubeUser $youtubeUser)
 {
     $session = $this->request->session();
     $userSessionValues = ['youtube_id' => $youtubeUser->getId(), 'name' => $youtubeUser->getNickname(), 'avatar' => $youtubeUser->getAvatar(), 'token' => $youtubeUser->token];
     $session->put('user', $userSessionValues);
 }