* @since 2.0 */ abstract class BaseMethod extends Object { /** * Return the canonical name of the Signature Method. * @return string method name. */ abstract public function getName(); /** * Generates OAuth request signature. * @param string $baseString signature base string. * @param string $key signature key. * @return string signature string. */ abstract public function generateSignature($baseString, $key); /** * Verifies given OAuth request. * @param string $signature signature to be verified. * @param string $baseString signature base string. * @param string $key signature key. * @return boolean success. */ public function verify($signature, $baseString, $key) { $expectedSignature = $this->generateSignature($baseString, $key); if (empty($signature) || empty($expectedSignature)) { return false; } return (strcmp($expectedSignature, $signature) === 0); } }