tracardi-1.0.x-dev/src/Services/AccessToken/Storage/DrupalStateAccessTokenStorage.php

src/Services/AccessToken/Storage/DrupalStateAccessTokenStorage.php
<?php

namespace Drupal\tracardi\Services\AccessToken\Storage;

use Drupal\Core\State\StateInterface;
use League\OAuth2\Client\Token\AccessToken;

final class DrupalStateAccessTokenStorage implements AccessTokenStorageInterface {

  private const STATE_KEY = 'tracardi_access_token';

  private StateInterface $state;

  public function __construct(StateInterface $state) {
    $this->state = $state;
  }

  public function get(): ?AccessToken {
    $accessToken = $this->state->get(self::STATE_KEY);
    if ($accessToken === NULL) {
      return NULL;
    }

    $decodedAccessToken = json_decode($accessToken, TRUE);

    return new AccessToken($decodedAccessToken);
  }

  public function set(AccessToken $accessToken): void {
    $encodedAccessToken = json_encode($accessToken);
    $this->state->set(self::STATE_KEY, $encodedAccessToken);
  }

  public function clear(): void {
    $this->state->delete(self::STATE_KEY);
  }
}

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

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