если ваш веб-сайт поддерживает HTTP Basic authentication
или HTTP Digest authentication
или HTTP NTLM authentication
, то у curl есть встроенная поддержка для входа в систему, например
curl -u name:passwd https://yy-dev.zzz.com/
, но подавляющее большинство веб-сайтов имеет собственный протокол входа в систему на основе http и не поддерживает ни одну из вышеупомянутых схем.некоторые веб-сайты облегчают вход через libcurl с использованием простых параметров HTTP Post, например, в php / libcurl:
<?php
$ch=curl_init();
curl_setopt_array($ch,array(
CURLOPT_POST=>1,
CURLOPT_COOKIEFILE=>'', // enables cookie handling, most websites use cookies for logins
CURLOPT_POSTFIELDS=>array(
'username'=>'whatever',
'password'=>'whatever',
),
CURLOPT_URL=>'https://yy-dev.zzz.com/login',
));
curl_exec($ch);
, в то время как многим сайтам требуется csrf-токен и действительный сеанс cookie перед разрешением входа, что-то вроде
<?php
$ch=curl_init();
curl_setopt_array($ch,array(
CURLOPT_COOKIEFILE=>'', // enables cookie handling, most websites use cookies for logins
CURLOPT_URL=>'https://yy-dev.zzz.com/login',
CURLOPT_RETURNTRANSFER=>1
));
$html=curl_exec($ch);
$domd=@DOMDocument::loadHTML($html);
$csrf_token=$domd->getElementById("csrf_token")->getAttribute("value");
curl_setopt_array($ch,array(
CURLOPT_POST=>1,
CURLOPT_POSTFIELDS=>array(
'username'=>'whatever',
'password'=>'whatever',
'csrf_token'=>$csrf_token
),
CURLOPT_URL=>'https://yy-dev.zzz.com/login',
));
echo curl_exec($ch); // logged in!
... и некоторые веб-сайты делают это НЕОБЫЧНО СЛОЖНЫМ для входа в систему, например https://gmail.com, здесь 300 строк кода для ... только входа в gmail.com: https://gist.github.com/divinity76/544d7cadd3e88e057ea3504cb8b3bf7e
вам нужно выяснить протокол входа в систему вашего сайта.и поскольку вы не разместили ни ссылку на веб-сайт (таким образом, мы, сообщество SO, не можем сами на него взглянуть), ни вы опубликовали анализ протокола входа в систему, который использует ваш веб-сайт, я проголосовал, чтобы закрыть ваш вопрос, онне содержит достаточно информации, чтобы найти решение.