Hallo zusammen,
mein Ziel ist es, mich zunächst über cURL auf einer externen URL zu autentifizieren, die Session soll dann erhalten bleiben, damit eine weiterer Request ausgeführt werden kann.
Die Autentifizierung im ersten Request, wird mit meinem Code unten erfolgreich durchgeführt, der zweite Request liefter ein 'false' bzw. 401-Unauthorized zurück. Ich vermute mal,
es liegt daran, dass das Session Cookie nicht gesetzt wird. Die cookies.txt ist immer leer. Kann mir Jemand sagen was ich falsch mache?
Ich freue und bedanke mich für eure Hilfe!!
mein Ziel ist es, mich zunächst über cURL auf einer externen URL zu autentifizieren, die Session soll dann erhalten bleiben, damit eine weiterer Request ausgeführt werden kann.
Die Autentifizierung im ersten Request, wird mit meinem Code unten erfolgreich durchgeführt, der zweite Request liefter ein 'false' bzw. 401-Unauthorized zurück. Ich vermute mal,
es liegt daran, dass das Session Cookie nicht gesetzt wird. Die cookies.txt ist immer leer. Kann mir Jemand sagen was ich falsch mache?
Ich freue und bedanke mich für eure Hilfe!!
Code:
<?php require_once 'AbstCtrlBase.php'; /* *@author longJSilver */ class LoginRequest extends AbstCtrlBase { private $datas; public function __construct($datas) { $this->datas = json_decode($datas, true); } public function getLoginAction() { $cookieFile = "cookies.txt"; if (!file_exists($cookieFile)) { $fh = fopen($cookieFile, "w"); fwrite($fh, ""); fclose($fh); } $url = "http://example.de/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERPWD, "xxxxxx:xxxxxx"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_exec($ch); if (curl_error($ch)) { echo 'false'; } else { curl_close($ch); unset($ch); $email = urlencode($this->datas['auth_mail']); $passw = urlencode($this->datas['auth_pw']); $url = "http://example.de/?xxx=xxx"; $ch = curl_init(); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); curl_setopt($ch, CURLOPT_COOKIE, $cookieFile); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "auth_mail=$email&auth_pw=$passw"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLINFO_HEADER_OUT, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FAILONERROR, 1); $response = curl_exec($ch); if (curl_error($ch)) { echo 'false'; } else { echo json_encode($response); } } } }
Kommentar