2017-11-17 1 views
0

Verwenden von Laravel 5 und versuchen, einige Daten von meiner Website zu einer anderen zu senden, die mir die REST API bereitstellt. Aber sie verwenden Cookies als eine Autorisierung. Für diesen Moment habe ich Auth erfolgreich bestanden. Und wie sollte ich diesen Cookie über die POST-Methode an die API-Schnittstelle senden? Hier ist meine Auflistung.Wie kann ich während der Verwendung der REST-API einen Cookie senden?

Vielen Dank im Voraus.

P.S. Alle Dinge laufen im Controller ab.

if (Cookie::get('amoauth') !== null) { 
      //COOKIE IS HERE 
      $client = new Client(); 
      $newlead = $client->post('https://domain.amocrm.ru/private/api/v2/json/leads/set', [ 
       'add' => [ 
        'add/name' => 'TEST LEAD', 
        'add/date_create' => time(), 
        'add/last_modified' => time(), 
        'add/status_id' => '1', 
        'add/price' => 5000 
       ] 
      ]); 
     } else { 
      $client = new Client(); 
      $auth = $client->post('https://domain.amocrm.ru/private/api/auth.php',[ 
       'USER_LOGIN' => 'login', 
       'USER_HASH' => 'hash', 
       'type' => 'json' 
      ]); 
      $auth = $auth->getHeaders('Set-Cookie'); 
      Cookie::queue('amoauth', $auth, 15); 
      return redirect('/test'); 
     } 

Jetzt gibt es mir folgendes:

Client error: `POST https://domain.amocrm.ru/private/api/v2/json/leads/set` resulted in a `401 Unauthorized` response. 
+0

Gefunden das: https://github.com/guzzle/guzzle/issues/1400, aber immer noch keine Ahnung, wie Sie es implementieren (die gleiche Situation wird über diesen Link beschrieben). – Dmitri

+0

Versuchte, 'CookieJar: $ jar = new \ GuzzleHttp \ Cookie \ CookieJar (Cookie :: get ('amoauth'));' aber immer noch '401 Unauthorized' ... zu verwenden Cookie vom API-Anbieter? – Dmitri

+0

Dies ist, was ich nach erfolgreicher Authentifizierung vom API-Provider erhalten: [link] (https://pastebin.com/PECa1xdv). Und das ist gespeichert Cookie: [Link] (https://pastebin.com/PDVBiwNh). Irgendwelche Ideen werden sicher geschätzt. – Dmitri

Antwort

0

die Lösung gefunden: auf ixudra/curl geschaltet.

Verwandte Themen