TokenFactory.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace FTTHBundle\Factory;
  3. use Buzz\Message\RequestInterface as HttpRequestInterface;
  4. class TokenFactory
  5. {
  6. public static function create($baseUrl, $ws){
  7. if(!is_null($baseUrl)){
  8. $endpointToken = $baseUrl."/oauth/v2/token";
  9. $params = [
  10. 'client_id' => getenv('OAUTH_CLIENT_ID'),
  11. 'client_secret' => getenv('OAUTH_CLIENT_SECRET'),
  12. 'grant_type' => 'client_credentials'
  13. ];
  14. try {
  15. $requestToken = $ws->makeRequest($endpointToken, HttpRequestInterface::METHOD_POST, $params);
  16. $token = json_decode($requestToken, true);
  17. $headers = [
  18. 'Authorization' => "Bearer {$token['access_token']}",
  19. 'ClientId' => $params['client_id'],
  20. 'ClientSecret' => $params['client_secret'],
  21. 'Microservice' => 1,
  22. 'Content-Type' => 'application/x-www-form-urlencoded'
  23. ];
  24. return $headers;
  25. } catch (\Exception $ex) {
  26. throw new \Exception($ex->getMessage());
  27. }
  28. }
  29. return null;
  30. }
  31. }