質問

私はcURLを使用してサードパーティのサーバーにアクセスしてログインするphpページをセットアップしようとしています。ユーザー、ユーザーは自分でログインする必要があります

どのようにしてcURLを取得してCookieをクライアントに転送できますか。 ありがとう

役に立ちましたか?

解決

次のcURLオプションについては、ドキュメントをご覧ください:

CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR

編集

質問をよりよく読んだ後、許可しようとしているサイトにクライアントをリダイレクトしない限り、クライアントブラウザにCookieを書き込む方法がないことを恐れています。ブラウザCookieは、同じオリジンポリシーとして知られるセキュリティモデルで動作します。これは基本的に、ドメインは自身のOWNドメインに対してのみCookieを発行でき、他のドメインに対してはCookieを発行できないことを意味します。特定の場合:

client --CONTACTS--> foo.com --cURL-LOGIN--> bar.com
bar.com --bar.com-COOKIE--> foo.com --foo.com-COOKIE--> client
client --foo.com-COOKIE--> bar.com (Will not work)

基本的に、foo.comはbar.comのクライアントでCookieを作成できません!

他のヒント

ユーザーのブラウザでは、とにかく別のドメインのCookieを設定することはおそらく許可されません。

PHPコードで、(たとえば)HotmailのセッションCookieにログインして取得できます。ただし、そのセッションをユーザーに渡すことはできません(したがって、ユーザーもログインします)。

これは、多くのブラウザおよび構成がサードパーティのCookieの設定を拒否しているためです。

ユーザーをサーバーにリダイレクトせずに、ユーザーのブラウザーでCookieを設定できます。あなたがする必要があるのは、カールコードを含むPHPページをユーザーにヒットさせることです。その後、彼の投稿データを取得して、このデータをサーバーに送信できます。しかし、サーバーがあなたを引き換えさせないでください。 オプションを CURLOPT_FOLLOWLOCATION にfalseに設定し、 CURLOPT_HEADER にtrueを設定します ヘッダーを取得して、Cookieとロケーションヘッダーを抽出し、それらを次のように渡します。 header(" Location:...)やheader(" Set-Cookie:....)などのクライアントブラウザへのヘッダー。他のヘッダーも抽出して送信できます。次の[投稿] htmlページがlibcurlを介してCookieを取得していない同様の状況があります

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top