Exemplo n.º 1
0
 /**
  * Handles login using this service.
  *
  * @param Request $request
  *
  * @return array|bool|RedirectResponse
  */
 public function handleLogin($request)
 {
     /** @var RedirectResponse $response */
     $response = $this->driver->redirect();
     if (!$request->ajax()) {
         return $response;
     }
     $url = $response->getTargetUrl();
     $result = ['response' => ['redirect' => true, 'url' => $url]];
     return $result;
 }
Exemplo n.º 2
0
 /**
  * @param \Lio\Github\GithubAuthenticatorListener $listener
  * @return \Illuminate\Http\RedirectResponse
  */
 public function authBySocialite(GithubAuthenticatorListener $listener)
 {
     try {
         $githubUser = $this->socialite->user();
     } catch (Exception $e) {
         return $listener->invalidLogin();
     }
     if ($user = $this->users->getByGithubId($githubUser->getId())) {
         return $this->loginUser($listener, $user);
     }
     return $listener->userNotFound($this->githubUserToArray($githubUser));
 }
Exemplo n.º 3
0
 public function registerOrLogin(AuthDelegate $delegate, Provider $socialite)
 {
     // Attempt to get YouTube user using code->accessToken->user
     $youtubeUser = $socialite->user();
     // If user exists, log them in.
     if ($this->userRepository->existsByYoutubeId($youtubeUser->getId())) {
         $user = $this->userRepository->getByYoutubeId($youtubeUser->getId());
         $this->login($youtubeUser, $user);
         return $delegate->userLoggedIn();
     }
     // No user found, let's register them.
     $user = $this->register($youtubeUser);
     $this->login($youtubeUser, $user);
     return $delegate->userJustRegistered();
 }
 public function createOrGetUser(Provider $provider)
 {
     $providerUser = $provider->user();
     $providerName = class_basename($provider);
     $account = SocialAccount::whereProvider($providerName)->whereProviderUserId($providerUser->getId())->first();
     if ($account) {
         return $account->user;
     } else {
         $account = new SocialAccount(['provider_user_id' => $providerUser->getId(), 'provider' => $providerName]);
         $user = User::whereEmail($providerUser->getEmail())->first();
         if (!$user) {
             $user = User::create(['email' => $providerUser->getEmail(), 'name' => $providerUser->getName()]);
         }
         $account->user()->associate($user);
         $account->save();
         return $user;
     }
 }
Exemplo n.º 5
0
 public function showLogin()
 {
     return $this->socialite->redirect();
 }