fkooman\OAuth\Client\TokenRequest::accessTokenRequest PHP Méthode

accessTokenRequest() private méthode

private accessTokenRequest ( array $p )
$p array
    private function accessTokenRequest(array $p)
    {
        if ($this->clientConfig->getCredentialsInRequestBody()) {
            // provide credentials in the POST body
            $p['client_id'] = $this->clientConfig->getClientId();
            $p['client_secret'] = $this->clientConfig->getClientSecret();
        } else {
            // use basic authentication
            $this->httpClient->setBasicAuth($this->clientConfig->getClientId(), $this->clientConfig->getClientSecret());
        }
        try {
            $this->httpClient->addHeader('Accept', 'application/json');
            $this->httpClient->addPostFields($p);
            $responseData = $this->httpClient->post($this->clientConfig->getTokenEndpoint());
            // some servers do not provide token_type, so we allow for setting
            // a default
            // issue: https://github.com/fkooman/php-oauth-client/issues/13
            if (null !== $this->clientConfig->getDefaultTokenType()) {
                if (is_array($responseData) && !isset($responseData['token_type'])) {
                    $responseData['token_type'] = $this->clientConfig->getDefaultTokenType();
                }
            }
            // if the field "expires_in" has the value null, remove it
            // issue: https://github.com/fkooman/php-oauth-client/issues/17
            if ($this->clientConfig->getAllowNullExpiresIn()) {
                if (is_array($responseData) && array_key_exists('expires_in', $responseData)) {
                    if (null === $responseData['expires_in']) {
                        unset($responseData['expires_in']);
                    }
                }
            }
            // if the field "scope" is empty string a default can be set
            // through the client configuration
            // issue: https://github.com/fkooman/php-oauth-client/issues/20
            if (null !== $this->clientConfig->getDefaultServerScope()) {
                if (is_array($responseData) && isset($responseData['scope']) && '' === $responseData['scope']) {
                    $responseData['scope'] = $this->clientConfig->getDefaultServerScope();
                }
            }
            // the service can return a string value of the expires_in
            // parameter, allow to convert to number instead
            // issue: https://github.com/fkooman/php-oauth-client/issues/40
            if ($this->clientConfig->getAllowStringExpiresIn()) {
                if (is_array($responseData) && isset($responseData['expires_in']) && is_string($responseData['expires_in'])) {
                    $responseData['expires_in'] = intval($responseData['expires_in']);
                }
            }
            if ($this->clientConfig->getUseCommaSeparatedScope()) {
                if (is_array($responseData) && isset($responseData['scope'])) {
                    $responseData['scope'] = str_replace(',', ' ', $responseData['scope']);
                }
            }
            // issue: https://github.com/fkooman/php-oauth-client/issues/41
            if ($this->clientConfig->getUseArrayScope()) {
                if (is_array($responseData) && isset($responseData['scope'])) {
                    if (is_array($responseData['scope'])) {
                        $responseData['scope'] = implode(' ', $responseData['scope']);
                    }
                }
            }
            return new TokenResponse($responseData);
        } catch (RuntimeException $e) {
            return false;
        }
    }