Pergunta

Eu estou tentando configurar uma página php que utiliza cURL para bater um servidor de terceiros para registrar-los. Agora meu código não logar na página ao servidor de terceiros, mas desde cURL não está enviando os cookies de sessão para o usuário, o login do usuário obrigação em si

Como posso obter cURL de transmitir cookies para o cliente. Graças

Foi útil?

Solução

Confira o documentação para as seguintes opções cURL :

CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR

Editar

Depois de ler a sua pergunta mais profundamente, eu tenho medo de dizer que não há nenhuma maneira de escrever os cookies para o navegador do cliente a menos que você redirecionar o cliente para o site que você está tentando autorizá-los diante. cookies do navegador operar em um modelo de segurança conhecido como Same Política de Origem. Isto significa basicamente que os domínios só podem emitir os cookies para os seus domínios próprios e não podem emitem cookies para outros domínios. No seu caso particular:

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)

Basicamente, foo.com NÃO PODE criar cookies no cliente para bar.com!

Outras dicas

O navegador do usuário irá provavelmente não permite que você os cookies definidos para outro domínio de qualquer maneira.

Você pode, em seu código PHP, login e buscar um cookie de sessão para (por exemplo) Hotmail. Mas você não vai ser capaz de passar essa sessão para o utilizador (para que ele / ela também seria logado).

Isto é porque muitos navegadores e configurações negam configurar cookies 3rd party.

Você pode definir o cookie no navegador do usuário sem redirecionando-o para o servidor. o que você precisa fazer é obter o usuário para bater sua página php com o código de onda nela. então você pode ter seus dados post e enviar os dados para o servidor. Mas não deixe que o servidor redirct você. Defina a opção como CURLOPT_FOLLOWLOCATION como falso e set CURLOPT_HEADER como verdadeiro Agora, pega o cabeçalho e extrair os cabeçalhos de cookie e localização e, em seguida, passar os como cabeçalhos para o navegador do cliente como header ( "Location: ...) e header (" Set-Cookie: ....). você também pode enviar outros cabeçalhos, extraindo-los também. a seguinte página [postar] html não recebendo os cookies através libcurl tem uma situação similar

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top