如何使用当前站点cookie登录到另一个站点,然后重定向到另一个页面并发出CURL请求?

时间:2018-10-12 12:18:43

标签: php curl cookies

如何使用当前站点cookie登录到另一个站点,然后重定向到另一个页面?

我有多个使用相同外部身份验证器的网站。我正在尝试从一个站点发出CURL请求以从另一个站点获取数据。但是在向其他站点发出CURL请求时出现身份验证问题。

要登录另一个站点,我需要单击登录URL,但是无需再次输入凭据。

所以我的实际要求是:

  1. 使用当前站点中的Cookies。

  2. 向另一个站点登录URL发出CURL请求,并使用来自当前站点的Cookies登录该站点。

  3. 向另一个URL发出CURL请求,您可以在其中获取所需的数据。

如果我在浏览器中登录到另一个站点,则可以从另一个站点获取数据。

我当前的代码如下:

$agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)";
$loginURL = $url . 'saml_login';
$cleanedURL = $url . 'anotherurl/list';

$curl = curl_init();

//Before making CURl request to $cleanedURL I need to make request to $loginURL(which has a redirect)

curl_setopt($curl, CURLOPT_URL, $cleanedURL);

curl_setopt($curl, CURLOPT_USERAGENT, $agent);

curl_setopt($curl, CURLOPT_FRESH_CONNECT, TRUE);

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");

curl_setopt($curl, CURLOPT_HTTPHEADER, array('Cookie: ' . $_SERVER['HTTP_COOKIE']));

curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($curl, CURLINFO_HEADER_OUT, TRUE);

curl_setopt($curl, CURLOPT_VERBOSE, TRUE);

curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);

$response = curl_exec($curl);

var_dump($response);

我遇到的所有示例都使用了已导出的标头或cookie文件中的凭据。

任何人都可以帮助我提出建议。

1 个答案:

答案 0 :(得分:0)

可以通过域共享Cookie。如果您在app.domain.com上的应用程序为通配符domain.com注册了cookie,而不是为app.domain.com注册了cookie,则任何subdomain.domain.com都可以访问该cookie密钥。

相关问题