X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fapioauthaccesstoken.php;h=76b06c28a22cc7cb8e9a124127f3ec474a0a6917;hb=19b965d99188fde59cdd39b668df8951bc0f180c;hp=663a7a2bb6388165b7e227025a4f1c66f539a24a;hpb=22047f6412811cb340aee6ba49d15257581b5aa9;p=quix0rs-gnu-social.git diff --git a/actions/apioauthaccesstoken.php b/actions/apioauthaccesstoken.php index 663a7a2bb6..76b06c28a2 100644 --- a/actions/apioauthaccesstoken.php +++ b/actions/apioauthaccesstoken.php @@ -44,7 +44,6 @@ require_once INSTALLDIR . '/lib/apioauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiOauthAccessTokenAction extends ApiOauthAction { protected $reqToken = null; @@ -67,47 +66,50 @@ class ApiOauthAccessTokenAction extends ApiOauthAction $server->add_signature_method($hmac_method); - $atok = null; + $atok = $app = null; // XXX: Insist that oauth_token and oauth_verifier be populated? // Spec doesn't say they MUST be. try { - $req = OAuthRequest::from_request(); $this->reqToken = $req->get_parameter('oauth_token'); $this->verifier = $req->get_parameter('oauth_verifier'); + $app = $datastore->getAppByRequestToken($this->reqToken); $atok = $server->fetch_access_token($req); - - } catch (OAuthException $e) { + } catch (Exception $e) { common_log(LOG_WARNING, 'API OAuthException - ' . $e->getMessage()); common_debug(var_export($req, true)); $code = $e->getCode(); $this->clientError($e->getMessage(), empty($code) ? 401 : $code, 'text'); + return; } if (empty($atok)) { - // Token exchange failed -- log it - list($proxy, $ip) = common_client_ip(); - $msg = sprintf( - 'API OAuth - Failure exchanging request token for access token, ' - . 'request token = %s, verifier = %s, IP = %s, proxy = %s', + 'API OAuth - Failure exchanging OAuth request token for access token, ' + . 'request token = %s, verifier = %s', $this->reqToken, - $this->verifier, - $ip, - $proxy + $this->verifier ); common_log(LOG_WARNING, $msg); - - $this->clientError(_("Invalid request token or verifier.", 400, 'text')); - + // TRANS: Client error given from the OAuth API when the request token or verifier is invalid. + $this->clientError(_('Invalid request token or verifier.'), 400, 'text'); } else { + common_log( + LOG_INFO, + sprintf( + "Issued access token '%s' for application %d (%s).", + $atok->key, + $app->id, + $app->name + ) + ); $this->showAccessToken($atok); } } @@ -117,7 +119,6 @@ class ApiOauthAccessTokenAction extends ApiOauthAction * * @param OAuthToken token the access token */ - function showAccessToken($token) { header('Content-Type: application/x-www-form-urlencoded');