2013-04-15 9 views
7
私たちは、私たちのサイトへのMoodleを追加する

からログインを受け入れる(別のサーバー、別のサブドメインが、同じメインドメイン、およびサーバが相互に通信できるように設定されている)と私たちがしたいですそれを行うているのは次のとおりです。Moodleは、外部サイト

  • ユーザーがメインのサイトにアクセスし
  • ユーザーで
  • ユーザーログのMoodleへのリンクをクリック
  • ユーザーは、自動的に自分の情報を再入力することなく、Moodleにログインしている
  • もしユーザーのブックマークや直接のMoodleにアクセスするには、彼らはまだそこに直接ログインすることができ

我々はすでに私は持っている、それはまた、Moodleのために働くDBの認証(外部データベース認証)ので、メインのサイトからアカウントを使用して設定していますMoodleに既存の資格情報を受け入れて自動的にユーザをログインさせる方法はありません。

+0

あなたのmoodle..iに外部のサイトを接続する方法私を助けてくださいすることができます私はあなたit..can行うことができませんでしたlot..butを試してみました – user3663

答えて

9

私はこれを解決することができ、他の誰かが同様の問題を抱えている場合に備えて解決策を共有すると思いました。私たちのMoodleサイトとメインサイト以来

が同じドメイン上にある、私がやったことは私たちの主なサイトのログインスクリプトにあった、私は次のコードを追加しました:

$postData = array('username' => $username, 'password' => $password); 
$post = http_post_fields('http://moodle.example.com/login/index.php', $postData); 
$headers = http_parse_headers($post); 
foreach($headers['Set-Cookie'] as $cookie) 
{ 
    $details = http_parse_cookie($cookie); 
    foreach ($details->cookies as $name => $value) 
     setcookie($name, $value, $details->expires, $details->path, 'example.com'); 
} 

は基本的に、私は、ログイン資格情報を掲載http_post_fieldsを使ってmoodleのログインスクリプトに、cURLはうまくいくはずですが、ヘッダーを解析してクッキーMoodleセットを取得し、より具体的なMoodleサブドメインの代わりに基本ドメインを使ってクッキーを設定します。これにより、ユーザーがより特定のサブドメインの既存のCookieを持っている場合に問題が発生する可能性があります。そのため、MoodleSessionという名前の既存のCookieを削除してください。

+0

を使用すると、1つのドメインまたは二つのサブドメインを使用しなかった私を助けてください?別のドメインにある場合は –

+0

? – user3663

関連する問題