2017-05-28 6 views
0

Ich versuche, eine Auth-Token mit Magento 2 Rest-API zu erhalten mit folgendem Codephp curl Rest api Token return false Magento 2

$userData = array("username" => "user", "password" => "password"); 
$ch = curl_init("https://domain/index.php/rest/V1/integration/admin/token"); 

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($userData)); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Content-Lenght: " . strlen(json_encode($userData)))); 

$token = curl_exec($ch); 
var_dump($token); 

Es funktioniert gut auf dem lokalen Server, aber $ token = falsch aus der Testserver. Ich kann Token mit Curl von einer Konsole abrufen.

curl -X POST "https://domain/index.php/rest/V1/integration/admin/token/" -H "Content-Type:application/json" -d '{"username":"user", "password":"password"}' 

Warum bekomme ich falsch in einem PHP-Skript? Irgendwelche Ideen?

+1

können Sie versuchen, 'curl_errno ($ ch)' und 'curl_error ($ ch)' ', wenn $ Token zu untersuchen === false' –

+0

@LorenzoS Danke, das hilft. –

Antwort

0

Ausgabe von curl_error ($ ch) geben Sie mir Fehler folgende

SSL certificate problem: unable to get local issuer certificate 

Einfach fix - https://stackoverflow.com/a/31830614/923497. Nur duplizieren hier

1) Download the latest cacert.pem from https://curl.haxx.se/ca/cacert.pem 

2) Add the following line to php.ini (if this is shared hosting and you don't have access to php.ini then you could add this to .user.ini in public_html) 

curl.cainfo=/path/to/downloaded/cacert.pem