1

Codeigniter Web サイトに掲示板を追加しようとしています。メインサイトからのログインをメッセージボードに引き継がせたいのですが。掲示板は Codeigniter で実行できないため、掲示板を実行するためのサブドメインを作成しました。これは、メイン サイトと掲示板が Cookie を共有しないことを意味します。メッセージボードは Phorum を利用しているため、ユーザーの user_id を持っている場合にサインインするために使用できるフックがあります。言い換えれば、私の問題は基本的に、別のドメインのセッションに格納されている user_id 変数を取得できる関数を 1 つのドメインで実行できるということです。

私が試したことは次のとおりです。

  1. ci->session を使用して user_id をエコーする codeigniter でコントローラーをセットアップします。次に、メッセージボードで、CURL を使用して codeigniter コントローラーの出力を取得しました。CURL は Cookie やセッションなどを保持しないため、これは機能しないようです。そのため、CURL を介して呼び出された場合、codeigniter はそのセッションにアクセスできません。

  2. 同じことですが、file_get_contents を使用します。サーバーで File_get_contents が無効になっています。

私はほとんどアイデアがありません。別のドメインから CI セッションに保存された user_id を取得する、私が作成できる関数を知っている人はいますか?

4

1 に答える 1

1

次の 2 つのことを試すことができます。

1) コード イグナイタ プロジェクトのサブディレクトリでフォーラムをホストします。したがって、2 つの Web サイトには URLhttp://mysite.com/http://mysite.com/forum. 同じドメインを共有するようになったので、セッションにアクセスできます。

2) フォーラムのログイン ページで、「自動サインイン」というメッセージを表示します。その同じページで、src="http://mysite.com/autologin/tokenid" を使用して html に iframe を追加しますが、css で非表示にします。自動ログイン ページには CI セッション情報が含まれます。これは、推測しにくいトークン ID と $_SESSION['user_id'] をエコーすることで、一時的に世界に公開できます。作業が完了したら、このページを期限切れにすることを忘れないでください。次に、フォーラムのログイン ページを更新し、CURL を使用して で公開されているセッション情報を取得しhttp://mysite.com/autologin/tokenidます。これにはセキュリティ上の欠陥がたくさんあるため、最後の手段としてのみ行ってください。

于 2010-07-17T21:12:00.340 に答える