123456789101112131415161718192021222324252627282930313233343536 |
- <?php
- class Services_Twilio_RequestValidator
- {
- protected $AuthToken;
- function __construct($token)
- {
- $this->AuthToken = $token;
- }
-
- public function computeSignature($url, $data = array())
- {
- // sort the array by keys
- ksort($data);
- // append them to the data string in order
- // with no delimiters
- foreach($data as $key => $value)
- $url .= "$key$value";
-
- // This function calculates the HMAC hash of the data with the key
- // passed in
- // Note: hash_hmac requires PHP 5 >= 5.1.2 or PECL hash:1.1-1.5
- // Or http://pear.php.net/package/Crypt_HMAC/
- return base64_encode(hash_hmac("sha1", $url, $this->AuthToken, true));
- }
- public function validate($expectedSignature, $url, $data = array())
- {
- return $this->computeSignature($url, $data)
- == $expectedSignature;
- }
- }
|