*/ class Mage_Api2_Model_Auth_Adapter_Oauth extends Mage_Api2_Model_Auth_Adapter_Abstract { /** * Process request and figure out an API user type and its identifier * * Returns stdClass object with two properties: type and id * * @param Mage_Api2_Model_Request $request * @return stdClass */ public function getUserParams(Mage_Api2_Model_Request $request) { /** @var $oauthServer Mage_Oauth_Model_Server */ $oauthServer = Mage::getModel('oauth/server', $request); $userParamsObj = (object) array('type' => null, 'id' => null); try { $token = $oauthServer->checkAccessRequest(); $userType = $token->getUserType(); if (Mage_Oauth_Model_Token::USER_TYPE_ADMIN == $userType) { $userParamsObj->id = $token->getAdminId(); } else { $userParamsObj->id = $token->getCustomerId(); } $userParamsObj->type = $userType; } catch (Exception $e) { throw new Mage_Api2_Exception($oauthServer->reportProblem($e), Mage_Api2_Model_Server::HTTP_UNAUTHORIZED); } return $userParamsObj; } /** * Check if request contains authentication info for adapter * * @param Mage_Api2_Model_Request $request * @return boolean */ public function isApplicableToRequest(Mage_Api2_Model_Request $request) { $headerValue = $request->getHeader('Authorization'); return $headerValue && 'oauth' === strtolower(substr($headerValue, 0, 5)); } }