ユーザーがログインを「バイパス」できるように、curlを使用して特定のサイトにログインし、応答をエコーする「自動ログイン」スクリプトを作成しようとしています。(たとえば、ワンタイムログインを許可するなど)
明らかに、次の方法を使用すると、Cookie はクライアントではなくサーバーに cookie.txt に保存されます。
$_COOKIE を設定してみましたが、自動ログインスクリプトとログインするサービスの URL (実際にはサブドメイン) が異なるため、うまくいきません。
ログインは正常に機能します。ログインしたかのように画面が表示されますが、リンクをクリックすると再度ログインする必要があります。
何か案は?ありがとう
自動ログインに使用したコード:
<?php
$username="email@domain.com";
$password="password";
$url="http://sub.domain-to-login.com/index.php/sessions/login";
$cookie="cookie.txt";
$postdata = "email=".$username."&password=".$password.'&btn_login=Login';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
echo $result;
?>