Generating OAuth 1 Signature in PHP

There are 2 things I changed to get this to work. I was missing the oauth_token when creating the base string for the signature – and according to the OAuth Core 1.0 documentation, "Parameters are sorted by name, using lexicographical byte value ordering."

So I ended up re-ordering the parameters to be alphabetical. Here's what the code for generating the base string ended up looking like:

$base = $request['method'] . "&" . rawurlencode($request['url']) . "&"
        . rawurlencode("oauth_consumer_key=" . rawurlencode($this->consumerKey)
        . "&oauth_nonce=" . rawurlencode($nonce)
        . "&oauth_signature_method=" . rawurlencode($signatureMethod)
        . "&oauth_timestamp=" . rawurlencode($timestamp)
        . "&oauth_token=" . rawurlencode($this->accessToken)
        . "&oauth_version=" . rawurlencode($version));

I also re-ordered the params in the auth header to match the order of the base string:

$authHeader = "Authorization: OAuth oauth_consumer_key=\"{$this->consumerKey}\",oauth_nonce=\"{$nonce}\",oauth_signature_method=\"{$signatureMethod}\",oauth_timestamp=\"{$timestamp}\",oauth_token=\"{$this->accessToken}\",oauth_version=\"{$version}\",oauth_signature=\"{$signature}\"";

Tags:

Php

Oauth