social_auth_vipps-8.x-2.1/src/OptionProvider/VippsAuthOptionProvider.php

src/OptionProvider/VippsAuthOptionProvider.php
<?php

namespace Drupal\social_auth_vipps\OptionProvider;

use League\OAuth2\Client\OptionProvider\OptionProviderInterface;
use League\OAuth2\Client\Tool\QueryBuilderTrait;

/**
 * Class Vipps Auth Option Provider.
 *
 * @package Drupal\social_auth_vipps\OptionProvider
 */
class VippsAuthOptionProvider implements OptionProviderInterface {

  use QueryBuilderTrait;

  /**
   * Get access token options.
   *
   * @inheritdoc
   */
  public function getAccessTokenOptions($method, array $params) {
    $body = $this->getAccessTokenBody([
      'grant_type' => $params['grant_type'],
      'code' => $params['code'],
      'redirect_uri' => $params['redirect_uri'],
    ]);

    $options = [
      'headers' => [
        'Authorization' => "Basic " . base64_encode("{$params['client_id']}:{$params['client_secret']}"),
        'content-type' => 'application/x-www-form-urlencoded',
      ],
      'body' => $body,
    ];

    if (isset($params['access_token'])) {
      $options['headers']['Authorization'] = "Bearer " . $params['access_token'];
    }

    return $options;
  }

  /**
   * Returns the request body for requesting an access token.
   *
   * @param array $params
   *   Parameters.
   *
   * @return string
   *   Access token body.
   */
  protected function getAccessTokenBody(array $params) {
    return urldecode($this->buildQueryString($params));
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc