コード例 #1
0
 /**
  * {@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);
 }
コード例 #2
0
 /**
  * {@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);
 }