storeAccessToken() public method

public storeAccessToken ( Token $token )
$token Token
Example #1
0
 /**
  * parse the response of an access token request and store it in dataStore
  *
  * @param \OAuth2\HttpClient $http
  * @param string $oldRefreshToken
  * @return \OAuth2\Token
  */
 private function _parseAccessTokenResponse(HttpClient $http, $oldRefreshToken = null)
 {
     $headers = $http->getHeaders();
     $type = 'text';
     if (isset($headers['Content-Type']) && strpos($headers['Content-Type'], 'application/json') !== false) {
         $type = 'json';
     }
     switch ($type) {
         case 'json':
             $response = json_decode($http->getResponse(), true);
             break;
         case 'text':
         default:
             $response = HttpClient::parseStringToArray($http->getResponse(), '&', '=');
             break;
     }
     if (isset($response['error'])) {
         throw new Exception('got error while requesting access token: ' . $response['error']);
     }
     if (!isset($response['access_token'])) {
         throw new Exception('no access_token found');
     }
     $token = new Token($response['access_token'], isset($response['refresh_token']) ? $response['refresh_token'] : $oldRefreshToken, isset($response['expires_in']) ? $response['expires_in'] : null);
     unset($response['access_token']);
     unset($response['refresh_token']);
     unset($response['expires_in']);
     // add additional parameters which may be returned depending on service and scope
     foreach ($response as $key => $value) {
         $token->{'set' . $key}($value);
     }
     $this->_dataStore->storeAccessToken($token);
     return $token;
 }