original_string: public function connectOauth2($options)
      {
          $token = false;
  
          // source oauth provider
          $oauthProvider = $this->getProvider();
  
          // error
          if(\Craft\craft()->request->getParam('error'))
          {
              throw new \Exception("An error occured: ".\Craft\craft()->request->getParam('error'));
          }
  
          $state = \Craft\craft()->request->getParam('state');
          $code = \Craft\craft()->request->getParam('code');
          $oauth2state = \Craft\craft()->httpSession->get('oauth2state');
  
          if (is_null($code))
          {
              $authorizationOptions = $options['authorizationOptions'];
  
              if(count($options['scope']) > 0)
              {
                  $authorizationOptions['scope'] = $options['scope'];
              }
  
              $authorizationUrl = $oauthProvider->getAuthorizationUrl($authorizationOptions);
  
              $state = $oauthProvider->getState();
  
              \Craft\craft()->httpSession->add('oauth2state', $state);
  
              OauthPlugin::log('OAuth 2.0 Connect - Redirect to the authorization URL'."\r\n".
  	            "authorizationUrl: ".$authorizationUrl."\r\n".
  	            "oauth2state: ".\Craft\craft()->httpSession->get('oauth2state')
  	        , LogLevel::Info);
  
              \Craft\craft()->request->redirect($authorizationUrl);
          }
          elseif (!$state || $state !== $oauth2state)
          {
              OauthPlugin::log('OAuth 2.0 Connect - Invalid State'."\r\n".print_r([
                  'state' => $state,
                  'oauth2state' => $oauth2state,
              ], true), LogLevel::Info);
  
              \Craft\craft()->httpSession->remove('oauth2state');
  
              throw new \Exception("Invalid state");
  
          }
          else
          {
              OauthPlugin::log('OAuth 2.0 Connect - Authorization code retrieved: '.$code, LogLevel::Info);
  
              $token = $oauthProvider->getAccessToken('authorization_code', [
                  'code' => $code
              ]);
  
              OauthPlugin::log("OAuth 2.0 Connect - Get Access Token\r\n".
  	            "Access token: \r\n".
  	            print_r($token, true)
  	        , LogLevel::Info);
          }
  
          return $token;
      }
code: public function connectOauth2($options)
      {
          $token = false;
  
          // source oauth provider
          $oauthProvider = $this->getProvider();
  
          // error
          if(\Craft\craft()->request->getParam('error'))
          {
              throw new \Exception("An error occured: ".\Craft\craft()->request->getParam('error'));
          }
  
          $state = \Craft\craft()->request->getParam('state');
          $code = \Craft\craft()->request->getParam('code');
          $oauth2state = \Craft\craft()->httpSession->get('oauth2state');
  
          if (is_null($code))
          {
              $authorizationOptions = $options['authorizationOptions'];
  
              if(count($options['scope']) > 0)
              {
                  $authorizationOptions['scope'] = $options['scope'];
              }
  
              $authorizationUrl = $oauthProvider->getAuthorizationUrl($authorizationOptions);
  
              $state = $oauthProvider->getState();
  
              \Craft\craft()->httpSession->add('oauth2state', $state);
  
              OauthPlugin::log('OAuth 2.0 Connect - Redirect to the authorization URL'."\r\n".
  	            "authorizationUrl: ".$authorizationUrl."\r\n".
  	            "oauth2state: ".\Craft\craft()->httpSession->get('oauth2state')
  	        , LogLevel::Info);
  
              \Craft\craft()->request->redirect($authorizationUrl);
          }
          elseif (!$state || $state !== $oauth2state)
          {
              OauthPlugin::log('OAuth 2.0 Connect - Invalid State'."\r\n".print_r([
                  'state' => $state,
                  'oauth2state' => $oauth2state,
              ], true), LogLevel::Info);
  
              \Craft\craft()->httpSession->remove('oauth2state');
  
              throw new \Exception("Invalid state");
  
          }
          else
          {
              OauthPlugin::log('OAuth 2.0 Connect - Authorization code retrieved: '.$code, LogLevel::Info);
  
              $token = $oauthProvider->getAccessToken('authorization_code', [
                  'code' => $code
              ]);
  
              OauthPlugin::log("OAuth 2.0 Connect - Get Access Token\r\n".
  	            "Access token: \r\n".
  	            print_r($token, true)
  	        , LogLevel::Info);
          }
  
          return $token;
      }
code_tokens: public function connectOauth2 ( $ options ) { $ token = false ; // source oauth provider $ oauthProvider = $ this -> getProvider ( ) ; // error if ( \ Craft \ craft ( ) -> request -> getParam ( 'error' ) ) { throw new \ Exception ( "An error occured: " . \ Craft \ craft ( ) -> request -> getParam ( 'error' ) ) ; } $ state = \ Craft \ craft ( ) -> request -> getParam ( 'state' ) ; $ code = \ Craft \ craft ( ) -> request -> getParam ( 'code' ) ; $ oauth2state = \ Craft \ craft ( ) -> httpSession -> get ( 'oauth2state' ) ; if ( is_null ( $ code ) ) { $ authorizationOptions = $ options [ 'authorizationOptions' ] ; if ( count ( $ options [ 'scope' ] ) > 0 ) { $ authorizationOptions [ 'scope' ] = $ options [ 'scope' ] ; } $ authorizationUrl = $ oauthProvider -> getAuthorizationUrl ( $ authorizationOptions ) ; $ state = $ oauthProvider -> getState ( ) ; \ Craft \ craft ( ) -> httpSession -> add ( 'oauth2state' , $ state ) ; OauthPlugin :: log ( 'OAuth 2.0 Connect - Redirect to the authorization URL' . "\r\n" . "authorizationUrl: " . $ authorizationUrl . "\r\n" . "oauth2state: " . \ Craft \ craft ( ) -> httpSession -> get ( 'oauth2state' ) , LogLevel :: Info ) ; \ Craft \ craft ( ) -> request -> redirect ( $ authorizationUrl ) ; } elseif ( ! $ state || $ state !== $ oauth2state ) { OauthPlugin :: log ( 'OAuth 2.0 Connect - Invalid State' . "\r\n" . print_r ( [ 'state' => $ state , 'oauth2state' => $ oauth2state , ] , true ) , LogLevel :: Info ) ; \ Craft \ craft ( ) -> httpSession -> remove ( 'oauth2state' ) ; throw new \ Exception ( "Invalid state" ) ; } else { OauthPlugin :: log ( 'OAuth 2.0 Connect - Authorization code retrieved: ' . $ code , LogLevel :: Info ) ; $ token = $ oauthProvider -> getAccessToken ( 'authorization_code' , [ 'code' => $ code ] ) ; OauthPlugin :: log ( "OAuth 2.0 Connect - Get Access Token\r\n" . "Access token: \r\n" . print_r ( $ token , true ) , LogLevel :: Info ) ; } return $ token ; }
docstring: Connect OAuth 2.0
docstring_tokens: Connect OAuth 2 . 0