]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/apioauthaccesstoken.php
Merge branch '1.0.x' of gitorious.org:statusnet/mainline into 1.0.x
[quix0rs-gnu-social.git] / actions / apioauthaccesstoken.php
index b8b188b1dcfc828c4fdb191db0332c8d38ef54b8..76b06c28a22cc7cb8e9a124127f3ec474a0a6917 100644 (file)
@@ -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);
-
-            print "Invalid request token or verifier.";
-
+            // 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');