如何使用当前站点cookie登录到另一个站点,然后重定向到另一个页面?
我有多个使用相同外部身份验证器的网站。我正在尝试从一个站点发出CURL请求以从另一个站点获取数据。但是在向其他站点发出CURL请求时出现身份验证问题。
要登录另一个站点,我需要单击登录URL,但是无需再次输入凭据。
所以我的实际要求是:
使用当前站点中的Cookies。
向另一个站点登录URL发出CURL请求,并使用来自当前站点的Cookies登录该站点。
向另一个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文件中的凭据。
任何人都可以帮助我提出建议。
答案 0 :(得分:0)
可以通过域共享Cookie。如果您在app.domain.com上的应用程序为通配符domain.com注册了cookie,而不是为app.domain.com注册了cookie,则任何subdomain.domain.com都可以访问该cookie密钥。