canto-1.0.x-dev/src/OAuthConnector.php

src/OAuthConnector.php
<?php

namespace Drupal\canto;

/**
 * Oauth helper class.
 */
class OAuthConnector {

  /**
   * Returns user info.
   *
   * @todo Use dependency injection.
   */
  private static function obtainUserInfo(string $subDomain, string $accessToken): string {
    /** @var \GuzzleHttp\Client $client */
    $client = \Drupal::service('http_client');
    // https://yourdomain.cantoflight.com/api/v1/user
    $url = 'https://' . $subDomain . '/api/v1/user';
    $headers = [
      'Referer' => 'Universal Connector',
      'User-Agent' => 'Universal Connector',
      'Authorization' => 'Bearer ' . $accessToken,
    ];
    try {
      $response = $client->get($url, ['headers' => $headers]);
      return $response->getStatusCode() == 200 ? $response->getBody()
        ->getContents() : FALSE;
    } catch (\Exception $e) {
      \Drupal::logger('canto')->error("Couldn't retrieve user info",
        ['@message' => $e->getMessage()]);
      return FALSE;
    }
  }

  /**
   * Check if token is valid.
   */
  public static function checkAccessTokenValid(string $subDomain, string $accessToken): bool {
    return (bool) self::obtainUserInfo($subDomain, $accessToken);
  }

}

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

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