Как получить OAuth 2.0, используя PHP curl с учетными данными клиента как grant_type? - PullRequest
0 голосов
/ 17 апреля 2020

Что я пробовал:

$header = array(
                "Authorization :Basic $authorization",
                "Content-Type: application/json"
                );

//option 1
$param='{
    "grant_type" : "client_credentials"
        }';

//option 2
$param = array("Grant_type: client_credentials",);

//option 3
$param = "grant_type=client_credentials";

//option 4
$a = array( 
     'grant_type' => 'client_credentials');
$param = http_build_query($a);

$ch = curl_init( $url );          
curl_setopt($ch,CURLOPT_POST,1);             
curl_setopt($ch,CURLOPT_POSTFIELDS,$param);
curl_setopt($ch,CURLOPT_VERBOSE, true);   
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);    
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,120);     
curl_setopt($ch,CURLOPT_TIMEOUT,120);  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
$content = curl_exec( $ch ); 
$err = curl_error($ch);        
curl_close( $ch );

Я уже попробовал все варианты выше, но продолжаю получать ошибку, подобную этой:

response_type or grant_type is required

Как передать grant_type в концепции curl? Или это я использую это неправильно?

1 Ответ

0 голосов
/ 20 апреля 2020

Найден ответ по этой ссылке https://auth0.com/docs/api-auth/tutorials/client-credentials

Необходимо добавить следующую строку tho:

CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false,

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://xxy",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_SSL_VERIFYHOST =>false,
  CURLOPT_SSL_VERIFYPEER => false,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded"
  ),
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...