2011-07-18 19 views
0

私たちはサーバーと複数のクライアントを持っています。ユーザーがサーバーにログインしている場合、セッションはサーバーのuser_idに作成され、OpenIdを使用してクライアントをサーバーにリダイレクトします。Curlを使用してセッションIDを転送するにはどうすればよいですか?

私はクライアントにリダイレクトする前に、このセッションのユーザーIDをcurlを使用して取得し、そのセッションがクライアントに存在する場合のみリダイレクトします。

クッキーなしでPHPセッションを使用してこれを行うことはできますか?

+0

セッションIDを送信するには、URLとCookieという2つの方法しかありません。どんなところでも、私はあなたのアーキテクチャを理解できません。 PHPセッションIDをOpenIDサーバーに送信しますか?クッキー、会社のポリシーを使用できないのはなぜですか? –

+0

お返事ありがとうございます。いいえ、そのように、ユーザーセッションがサーバーに存在する場合にのみブラウザが自動的にオープンIDサーバーにリダイレクトされるようにします。クッキーも使用できますが、どのようにクロスドメインでこれを行うことができますか?サーバーは別のドメインにあり、クライアントは独自のドメインにあります。 Curlを使用してサーバー上にCookieが存在するかどうかを確認できるかどうかを確認する必要がありました。 – aparna

+0

申し訳ありませんが、私はまだあなたに従うことが大変です。あなたは2つのサーバーを持っており、それらを両方とも「サーバー」と呼んでいます。 2つの異なるサーバー間でセッション識別子を*共有*したいですか? –

答えて

0

とにかくセッションがクッキーであるため、最も簡単な方法は、domain:sitea,sitebでクッキーを変更することです。 もう1つの方法はURLに渡すことですが、ユーザーが手動でブラウザにhttp://siteb.whatever/と入力すると機能しません。例えば

header("Set-Cookie: $mySessionId; Domain=siteA.com; Path=/exemple/of/path; Secure;"); 
header("Set-Cookie: $mySessionId; Domain=siteB.com; Path=/; Secure;"); 

は、2枚のクッキーを作成します、ウィッヒはあなたがsiteA.com/exemple/of/path/またはsiteB.com/に接続するたびに再送信されます。有効期限を指定しないと、ブラウザの終了時に削除されます。

曖昧さ回避:有効期限クッキーとは、そうでなければ、彼らはセッションクッキーあり、永続的なCookieです。

PHP setcookie()を使用することもできます。また、見てくださいhow cookie works.

+0

セッションID [URLでも転送できます](http://es.php.net/manual/en/session.idpassing.php)。 –

+0

私たちはこれをどうすればいいのか分かりません。例のコードで助けてください。アドバンテージありがとう – aparna

+0

@Àlvaro:無関係です。リンクやリダイレクトでしか動作しません。質問のコメントに記載されているような厳しいタイピングではありません。@ aparna:私の答えを編集しました。 –

0

他のブラウザからそれらを制御できるようにセッションを転送できる最も信頼性の高い方法は、セッションを格納するためにMySQLまたは他の記憶媒体を使用している、このようにセッションですブラウザから離して渡すことができます。

関連する問題