私のphpウェブアプリケーションのボタンを使用して、別のウェブサイトでログインセッションを開始しようとしています。言い換えれば、私はに自分のアプリケーションたい:ヘッドレスログイン:ログインしてcURLを使ってリモートセッションを開く
- が
- (達成)新しいタブ/ウィンドウを開くには、別のWebサイト+ログインまたは
- に行く(代わりに)に標的部位に必要なセッションデータを収集ログインして現在のブラウザを検討
これは、次のコードで不完全な形で(達成されています。
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_REFERER, $url);
$result = curl_exec ($ch);
curl_close ($ch);
print $result;
これはリモートサイトの「ログイン」ページを正常に視覚化しますが、そのようなリモートサイトの機能のいずれかをクリックするたびに、私は明らかに404を取得します。これは、cURL私のブラウザは対象のWebサイト上のリモートアプリケーションを扱っていません。例えば。私のアドレスバーは私がlocal.dev/loggedin.phpにあり、secure.targetsite.com/loggein.phpにいるのではないと言います。
これは参考になるかもしれません:ブラウザーを介してログインすると、対象のWebサイトは、セッションが一定の期間生存できるようにセッションCookieを設定します。私のWebアプリケーションは、curlによって実行された認証プロシージャからのセッションデータをフェッチして保存し、ログインに使用できますか?これは、cURLを介して行うことができない可能性があります
..
私はちょうどクッキーのレスポンスヘッダを解析し、(PHPのますsetcookieを使用)が、それは動作しないと考えていた:私は、リモートでバウンスを取得私が決してログインしていなかったかのようにアプリ。
私はカールの使用の専門家ではありません。
あなたはそうです、これはcURLでは不可能です。また、他のドメインに対してもCookieを設定することはできません。 – CBroe
あなたは別のウェブサイトへのヘッドレスログインを作成したい場合、どのようにこの問題にアプローチしますか? – artoo