\Cake\Http\Client\AuthOauth

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'

Summary

Methods
Properties
Constants
authentication()
baseString()
No public properties found
No constants found
_plaintext()
_hmacSha1()
_rsaSha1()
_normalizedUrl()
_normalizedParams()
_normalizeData()
_buildAuth()
_encode()
No protected properties found
N/A
No private methods found
No private properties found
N/A

Methods

authentication()

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.

Throws

\Cake\Core\Exception\Exception

On invalid signature types.

Returns

\Cake\Http\Client\Request

The updated request.

baseString()

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

_plaintext()

_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 —

Authorization header.

_hmacSha1()

_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

_rsaSha1()

_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.

Throws

\RuntimeException

Returns

string

_normalizedUrl()

_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 —

Normalized URL

_normalizedParams()

_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 —

sorted and normalized values

_normalizeData()

_normalizeData(array  $args, string  $path = '') : array

Recursively convert request data into the normalized form.

Parameters

array $args

The arguments to normalize.

string $path

The current path being converted.

Returns

array

_buildAuth()

_buildAuth(array  $data) : string

Builds the Oauth Authorization header value.

Parameters

array $data

The oauth_* values to build

Returns

string

_encode()

_encode(string  $value) : string

URL Encodes a value based on rules of rfc3986

Parameters

string $value

Value to encode.

Returns

string