/** * @throws ilCloudException */ protected function loadToken() { $this->response->loadFromRequest(array('code')); if ($this->response->getCode()) { $this->exod_app->buildURLs(); $exodCurl = new exodCurl(); $exodCurl->setUrl($this->exod_app->getTokenUrl()); $exodCurl->addHeader("Content-Type: application/x-www-form-urlencoded"); $exodCurl->addPostField('code', $this->response->getCode()); $exodCurl->addPostField('client_id', $this->exod_app->getClientId()); $exodCurl->addPostField('redirect_uri', $this->exod_app->getRedirectUri()); $exodCurl->addPostField('grant_type', 'authorization_code'); $exodCurl->addPostField('client_secret', $this->getExodApp()->getClientSecret()); $exodCurl->addPostField('resource', $this->exod_app->getRessourceUri()); $exodCurl->post(); // exit; $this->response->loadFromResponse($exodCurl->getResponseBody()); // echo '<pre>' . print_r($this, 1) . '</pre>'; // exit; $exodBearerToken = new exodBearerToken(); $exodBearerToken->setAccessToken($this->getResponse()->getAccessToken()); $exodBearerToken->setRefreshToken($this->getResponse()->getRefreshToken()); $exodBearerToken->setValidThrough($this->getResponse()->getExpiresOn()); $this->setExodBearerToken($exodBearerToken); } else { throw new ilCloudException(ilCloudException::UNKNONW_EXCEPTION, 'No Code received'); } }
/** * @param exodBearerToken $exodBearerToken * * @return bool */ public function refreshToken(exodBearerToken &$exodBearerToken) { // throw new ilCloudException(-1, 'failed'); $exodLog = exodLog::getInstance(); $exodLog->write('refreshing-Token...'); $this->exod_app->buildURLs(); $exodCurl = new exodCurl(); $exodCurl->setUrl($this->exod_app->getTokenUrl()); $exodCurl->addHeader("Content-Type: application/x-www-form-urlencoded"); $exodCurl->addPostField('client_secret', $this->getExodApp()->getClientSecret()); $exodCurl->addPostField('client_id', $this->exod_app->getClientId()); $exodCurl->addPostField('grant_type', 'refresh_token'); $exodCurl->addPostField('refresh_token', $exodBearerToken->getRefreshToken()); $exodCurl->addPostField('resource', $this->exod_app->getRessourceUri()); $exodCurl->addPostField('redirect_uri', $this->exod_app->getRedirectUri()); $exodCurl->post(); $this->response->loadFromResponse($exodCurl->getResponseBody()); $exodBearerToken->setRefreshToken($this->response->getRefreshToken()); $exodBearerToken->setAccessToken($this->response->getAccessToken()); $exodBearerToken->setValidThrough($this->response->getExpiresOn()); $this->setExodBearerToken($exodBearerToken); }