Composable Commerce PHP SDKPHP SDK
  • Namespace
  • Class
  • Tree

Namespaces

  • Commercetools
    • Commons
      • Helper
    • Core
      • Builder
        • Request
        • Update
      • Cache
      • Client
        • Adapter
        • OAuth
      • Error
      • Helper
        • Annotate
        • State
          • Renderer
        • Subscriber
          • Log
      • Model
        • ApiClient
        • Cart
        • CartDiscount
        • Category
        • Channel
        • Common
        • Customer
        • CustomerGroup
        • CustomField
        • CustomObject
        • DiscountCode
        • Extension
        • Inventory
        • Message
        • Order
        • OrderEdit
        • Payment
        • Product
          • Search
        • ProductDiscount
        • ProductSelection
        • ProductType
        • Project
        • Review
        • ShippingMethod
        • ShoppingList
        • State
        • Store
        • Subscription
        • TaxCategory
        • Type
        • Zone
      • Request
        • ApiClients
        • CartDiscounts
          • Command
        • Carts
          • Command
        • Categories
          • Command
        • Channels
          • Command
        • CustomerGroups
          • Command
        • Customers
          • Command
        • CustomField
          • Command
        • CustomObjects
        • DiscountCodes
          • Command
        • Extensions
          • Command
        • GraphQL
        • InStores
        • Inventory
          • Command
        • Me
          • Command
        • Messages
        • OrderEdits
          • Command
          • StagedOrder
            • Command
        • Orders
          • Command
        • Payments
          • Command
        • ProductDiscounts
          • Command
        • Products
          • Command
        • ProductSelections
          • Command
        • ProductTypes
          • Command
        • Project
          • Command
        • Query
        • Reviews
          • Command
        • ShippingMethods
          • Command
        • ShoppingLists
          • Command
        • States
          • Command
        • Stores
          • Command
        • Subscriptions
          • Command
        • TaxCategories
          • Command
        • Types
          • Command
        • Zones
          • Command
      • Response

Classes

  • AnonymousFlowTokenProvider
  • CacheTokenProvider
  • ClientCredentials
  • CredentialTokenProvider
  • OAuth2Handler
  • PasswordFlowTokenProvider
  • PreAuthTokenProvider
  • RefreshFlowTokenProvider
  • Token
  • TokenStorageProvider

Interfaces

  • AnonymousIdProvider
  • RefreshTokenProvider
  • TokenProvider
  • TokenStorage
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 
<?php

namespace Commercetools\Core\Client\OAuth;

use Commercetools\Core\Cache\CacheAdapterFactory;
use Commercetools\Core\Error\InvalidArgumentException;
use Psr\Cache\CacheItemPoolInterface;
use Psr\Http\Message\RequestInterface;
use Psr\SimpleCache\CacheInterface;

class OAuth2Handler
{
    /**
     * @var TokenProvider
     */
    private $provider;

    /**
     * OAuth2Handler constructor.
     * @param TokenProvider $provider
     * @param CacheItemPoolInterface|CacheInterface $cache
     * @param CacheAdapterFactory|null $factory
     * @param string $cacheKey
     */
    public function __construct(
        TokenProvider $provider
    ) {
        $this->provider = $provider;
    }

    /**
     * @param RequestInterface $request
     * @param array $options
     * @return RequestInterface
     */
    public function __invoke(RequestInterface $request, array $options = [])
    {
        if ($request->hasHeader('Authorization')) {
            return $request;
        }
        return $request->withHeader('Authorization', $this->getAuthorizationHeader());
    }

    /**
     * @return string
     */
    public function getAuthorizationHeader()
    {
        return 'Bearer ' . $this->getBearerToken()->getToken();
    }

    public function refreshToken()
    {
        if ($this->provider instanceof RefreshTokenProvider) {
            return $this->provider->refreshToken();
        }
        throw new InvalidArgumentException();
    }

    /**
     * @return Token
     */
    private function getBearerToken()
    {
        return $this->provider->getToken();
    }

    /**
     * @return bool
     */
    public function refreshable()
    {
        return ($this->provider instanceof RefreshTokenProvider);
    }
}
PHP SDK API documentation generated by ApiGen