tracardi-1.0.x-dev/src/Services/AccessToken/Context/ChainAccessTokenContext.php

src/Services/AccessToken/Context/ChainAccessTokenContext.php
<?php

namespace Drupal\tracardi\Services\AccessToken\Context;

use League\OAuth2\Client\Token\AccessToken;

final class ChainAccessTokenContext implements AccessTokenContextInterface {
  /**
   * @var AccessTokenContextInterface[] $tokenContexts
   */
  private array $tokenContexts;

  /**
   * @param AccessTokenContextInterface[] $tokenContexts
   */
  public function __construct(array $tokenContexts) {
    $this->tokenContexts = $tokenContexts;
  }

  public function getAccessToken(): AccessToken {
    foreach ($this->tokenContexts as $accessTokenContext) {
      try {
        return $accessTokenContext->getAccessToken();
      }
      catch (CouldNotFetchTokenException $e) {
        continue;
      }
    }

    throw new CouldNotFetchTokenException('None of the provided contexts was able to retrieve an access token');
  }
}

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

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