Ho qualche problema con PHP Curl e Cookies Authentication.PHP Curl and Cookies
Ho un file Connector.php che autentica gli utenti su un altro server e restituisce cookie con l'utente corrente.
Il problema è che voglio autenticare migliaia di utenti con il ricciolo, ma autentica e salva i COOKIES solo per un utente alla volta.
il codice per connector.php è questo:
<?php
if(!count($_REQUEST)) {
die("No Access!");
}
//Core Url For Services
define ('ServiceCore', 'http://example.com/core/');
//Which Internal Service Should Be Called
$path = $_GET['service'];
//Service To Be Queried
$url = ServiceCore.$path;
//Open the Curl session
$session = curl_init($url);
// If it's a GET, put the GET data in the body
if ($_GET['service']) {
//Iterate Over GET Vars
$postvars = '';
foreach($_GET as $key=>$val) {
if($key!='service') {
$postvars.="$key=$val&";
}
}
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $postvars);
}
//Create And Save Cookies
$tmpfname = dirname(__FILE__).'/cookie.txt';
curl_setopt($session, CURLOPT_COOKIEJAR, $tmpfname);
curl_setopt($session, CURLOPT_COOKIEFILE, $tmpfname);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session, CURLOPT_FOLLOWLOCATION, true);
// EXECUTE
$json = curl_exec($session);
echo $json;
curl_close($session);
?>
Qui è il processo di autenticazione:
- utente inserisce username e password:? Connector.php servizio = accesso & USER_NAME = user32 & user_pass = 123
- Connector.php? service = logosessionInfo questo restituisce informazioni sull'utente in base ai cookie salvati in precedenza con il servizio di accesso.
Il problema è che questo codice salva Cookie in un file per un utente e non può gestire l'autenticazione di più utenti.
ho risolto il mio problema con la creazione di diversi file cookie per i diversi utenti con PHPSESSID unico. '$ tmpfname = dirname (__ FILE __). '/'. $ _ COOKIE ['PHPSESSID']. '. txt';' – Shark
è una buona idea se ci sono molti utenti? – trainoasis
No Se hai molti utenti questo è male. Provoca crash del server Apache. Ho risolto questo problema con il proxy apache. E rimosso tutto il mio codice CURL. – Shark