Class Oauth
Oauth 1 authentication strategy for Cake\Http\Client
This object does not handle getting Oauth access tokens from the service provider. It only handles make client requests after you have obtained the Oauth tokens.
Generally not directly constructed, but instead used by Cake\Http\Client when $options['auth']['type'] is 'oauth'
Method Summary
-
_buildAuth() protected
Builds the Oauth Authorization header value.
-
_encode() protected
URL Encodes a value based on rules of rfc3986
-
_hmacSha1() protected
Use HMAC-SHA1 signing.
-
_normalizedParams() protected
Sorts and normalizes request data and oauthValues
-
_normalizedUrl() protected
Builds a normalized URL
-
_plaintext() protected
Plaintext signing
-
_rsaSha1() protected
Use RSA-SHA1 signing.
-
authentication() public
Add headers for Oauth authorization.
-
baseString() public
Generate the Oauth basestring
Method Detail
_buildAuth() ¶ protected
_buildAuth(array $data): string
Builds the Oauth Authorization header value.
Parameters
-
array
$data The oauth_* values to build
Returns
string
_encode() ¶ protected
_encode(string $value): string
URL Encodes a value based on rules of rfc3986
Parameters
-
string
$value Value to encode.
Returns
string
_hmacSha1() ¶ protected
_hmacSha1(Cake\Http\Client\Request $request, array $credentials): string
Use HMAC-SHA1 signing.
This method is suitable for plain HTTP or HTTPS.
Parameters
-
Cake\Http\Client\Request
$request The request object.
-
array
$credentials Authentication credentials.
Returns
string
_normalizedParams() ¶ protected
_normalizedParams(Cake\Http\Client\Request $request, array $oauthValues): string
Sorts and normalizes request data and oauthValues
Section 9.1.1 of Oauth spec.
- URL encode keys + values.
- Sort keys & values by byte value.
Parameters
-
Cake\Http\Client\Request
$request The request object.
-
array
$oauthValues Oauth values.
Returns
string
_normalizedUrl() ¶ protected
_normalizedUrl(Psr\Http\Message\UriInterface $uri): string
Builds a normalized URL
Section 9.1.2. of the Oauth spec
Parameters
-
Psr\Http\Message\UriInterface
$uri Uri object to build a normalized version of.
Returns
string
_plaintext() ¶ protected
_plaintext(Cake\Http\Client\Request $request, array $credentials): string
Plaintext signing
This method is not suitable for plain HTTP. You should only ever use PLAINTEXT when dealing with SSL services.
Parameters
-
Cake\Http\Client\Request
$request The request object.
-
array
$credentials Authentication credentials.
Returns
string
_rsaSha1() ¶ protected
_rsaSha1(Cake\Http\Client\Request $request, array $credentials): string
Use RSA-SHA1 signing.
This method is suitable for plain HTTP or HTTPS.
Parameters
-
Cake\Http\Client\Request
$request The request object.
-
array
$credentials Authentication credentials.
Returns
string
Throws
RuntimeException
authentication() ¶ public
authentication(Cake\Http\Client\Request $request, array $credentials): Cake\Http\Client\Request
Add headers for Oauth authorization.
Parameters
-
Cake\Http\Client\Request
$request The request object.
-
array
$credentials Authentication credentials.
Returns
Cake\Http\Client\Request
Throws
Cake\Core\Exception\Exception
On invalid signature types.
baseString() ¶ public
baseString(Cake\Http\Client\Request $request, array $oauthValues): string
Generate the Oauth basestring
- Querystring, request data and oauth_* parameters are combined.
- Values are sorted by name and then value.
- Request values are concatenated and urlencoded.
- The request URL (without querystring) is normalized.
- The HTTP method, URL and request parameters are concatenated and returned.
Parameters
-
Cake\Http\Client\Request
$request The request object.
-
array
$oauthValues Oauth values.
Returns
string