Exemplo n.º 1
0
 /**
  * Query the provider for the resource owner.
  *
  * @param AccessToken $accessToken
  *
  * @throws IdentityProviderException
  *
  * @return ResourceOwnerInterface
  */
 protected function getResourceOwner(AccessToken $accessToken)
 {
     if ($this->resourceOwner === null) {
         $this->resourceOwner = $this->provider->getResourceOwner($accessToken);
     }
     return $this->resourceOwner;
 }
Exemplo n.º 2
0
 protected function makeRegistrationRequest(AbstractProvider $provider, AccessToken $accessToken) : RegistrationRequest
 {
     /** @var GoogleUser $resourceOwner */
     $resourceOwner = $provider->getResourceOwner($accessToken);
     $email = $resourceOwner->getEmail();
     $providerAccountId = (string) $resourceOwner->getId();
     return new RegistrationRequest('google', $providerAccountId, $email, $resourceOwner);
 }
Exemplo n.º 3
0
 /**
  * @param Request $request
  * @return \Psr\Http\Message\ResponseInterface|RedirectResponse
  */
 public function handle(Request $request)
 {
     $redirectUri = (string) $request->getAttribute('originalUri', $request->getUri())->withQuery('');
     $this->provider = $this->getProvider($redirectUri);
     $session = $request->getAttribute('session');
     $queryParams = $request->getQueryParams();
     $code = array_get($queryParams, 'code');
     $state = array_get($queryParams, 'state');
     if (!$code) {
         $authUrl = $this->provider->getAuthorizationUrl($this->getAuthorizationUrlOptions());
         $session->set('oauth2state', $this->provider->getState());
         return new RedirectResponse($authUrl . '&display=popup');
     } elseif (!$state || $state !== $session->get('oauth2state')) {
         $session->forget('oauth2state');
         echo 'Invalid state. Please close the window and try again.';
         exit;
     }
     $this->token = $this->provider->getAccessToken('authorization_code', compact('code'));
     $owner = $this->provider->getResourceOwner($this->token);
     $identification = $this->getIdentification($owner);
     $suggestions = $this->getSuggestions($owner);
     return $this->authResponse->make($request, $identification, $suggestions);
 }
 /**
  * @param AbstractProvider $provider
  * @param AccessToken $token
  * @param string $providerName
  * @param SS_HTTPRequest $request
  */
 public function afterGetAccessToken(AbstractProvider $provider, AccessToken $token, $providerName, SS_HTTPRequest $request)
 {
     $user = $provider->getResourceOwner($token);
     try {
         $member = $this->memberFromResourceOwner($user, $providerName);
         $this->owner->setMember($member);
     } catch (TokenlessUserExistsException $e) {
         return Security::permissionFailure($this->owner, $e->getMessage());
     }
     $result = $member->canLogIn();
     if (!$result->valid()) {
         return Security::permissionFailure($this->owner, $result->message());
     }
     $member->logIn();
 }
 /**
  * Returns the "User" information (called a resource owner).
  *
  * @param AccessToken $accessToken
  * @return \League\OAuth2\Client\Provider\ResourceOwnerInterface
  */
 public function fetchUserFromToken(AccessToken $accessToken)
 {
     return $this->provider->getResourceOwner($accessToken);
 }
Exemplo n.º 6
0
 /**
  * Requests and returns the resource owner of given access token.
  *
  * @param  AccessToken $token
  * @return ResourceOwnerInterface
  */
 public function getResourceOwner(AccessToken $token)
 {
     $this->openId = $this->getOpenId($token);
     return parent::getResourceOwner($token);
 }