/** * {@inheritdoc} */ protected function findProviderUserFromRequest(ServerRequestInterface $request, ProviderInterface $provider) { $postParams = $request->getParsedBody(); $tokenIdentifier = isset($postParams['token_identifier']) ? $postParams['token_identifier'] : null; $tokenSecret = isset($postParams['token_secret']) ? $postParams['token_secret'] : null; $tokenCredentials = new TokenCredentials(); $tokenCredentials->setIdentifier($tokenIdentifier); $tokenCredentials->setSecret($tokenSecret); /** @var \League\OAuth1\Client\Server\Server $providerClient */ $providerClient = $this->providerClients->get($provider->getName()); try { $user = $providerClient->getUserDetails($tokenCredentials); } catch (\Exception $e) { throw OAuth2Exception::invalidRequest('Token identifier and token secret are invalid'); } return new Oauth1User($user); }
/** * {@inheritdoc} */ protected function findProviderUserFromRequest(ServerRequestInterface $request, ProviderInterface $provider) { $postParams = $request->getParsedBody(); $providerAuthorizationCode = isset($postParams['provider_authorization_code']) ? $postParams['provider_authorization_code'] : null; $providerAccessToken = isset($postParams['provider_access_token']) ? $postParams['provider_access_token'] : null; /* @var \League\OAuth2\Client\Provider\ProviderInterface */ $providerClient = $this->providerClients->get($provider->getName()); if ($providerAuthorizationCode) { // Try to get an access token (using the authorization code grant) try { /** @var ProviderAccessToken $providerAccessToken*/ $providerAccessToken = $providerClient->getAccessToken('authorization_code', ['code' => $providerAuthorizationCode]); } catch (IDPException $e) { // @todo decide what is the best thing to do here??? throw OAuth2Exception::invalidRequest('Provider authorization code is invalid'); } } else { $providerAccessToken = new ProviderAccessToken(['access_token' => $providerAccessToken]); } /* @var \League\OAuth2\Client\Entity\User */ $userDetails = $providerClient->getUserDetails($providerAccessToken); return new Oauth2User($userDetails); }