Domanda

Sto provando a configurare una pagina php che utilizza cURL per colpire un server di terze parti per accedervi. In questo momento il mio codice accede correttamente al server di terze parti, ma poiché cURL non sta inviando i cookie SESSION al utente, l'utente deve accedere da solo

Come posso ottenere cURL per inoltrare i cookie al client. Grazie

È stato utile?

Soluzione

Consulta la documentazione per le seguenti opzioni cURL :

CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR

Modifica

Dopo aver letto la tua domanda in modo più approfondito, ho paura di dirti che non c'è modo di scrivere i cookie sul browser del client a meno che non reindirizzi il client sul sito sul quale stai tentando di autorizzarli. I cookie del browser funzionano su un modello di sicurezza noto come stessa politica di origine . Ciò significa sostanzialmente che i domini possono emettere solo cookie per i propri domini PROPRI e non possono emettere cookie per altri domini. Nel tuo caso particolare:

client --CONTACTS--> foo.com --cURL-LOGIN--> bar.com
bar.com --bar.com-COOKIE--> foo.com --foo.com-COOKIE--> client
client --foo.com-COOKIE--> bar.com (Will not work)

Fondamentalmente, foo.com NON PU create creare cookie sul client per bar.com!

Altri suggerimenti

Molto probabilmente il browser dell'utente non ti consentirà di impostare cookie per un altro dominio.

Puoi, nel tuo codice PHP, accedere e recuperare un cookie di sessione per (ad esempio) Hotmail. Ma non sarai in grado di passare quella sessione all'utente (quindi anche lui / lei sarebbe loggato).

Questo perché molti browser e configurazioni negano l'impostazione dei cookie di terze parti.

È possibile impostare il cookie nel browser dell'utente senza reindirizzarlo al server. quello che devi fare è convincere l'utente a colpire la tua pagina php con il codice arricciatura al suo interno. quindi puoi prendere i suoi dati di posta e inviarli al server. Ma non lasciare che il server ti reindirizzi. Imposta l'opzione come CURLOPT_FOLLOWLOCATION su false e imposta CURLOPT_HEADER su true Ora prendi l'intestazione ed estrai le intestazioni dei cookie e della posizione e poi passa quelle come intestazioni al browser client come header (" Location: ...) e header (" Set-Cookie: ....). puoi anche inviare altre intestazioni estraendole. la seguente [post] pagina html che non riceve i cookie tramite libcurl ha una situazione simile

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top