2016-06-17 8 views
0

私はサーバー上にMoodleインスタンスを、同じサーバー上にDrupalインスタンスをインストールしました。しかし、彼らはどちらも異なるドメインを使用しています。DrupalでMoodle APIまたはMoodle関数を使用するには?

drupal.example.com (running Drupal 7.44) (hosted on Server A) 
www.example.net/moodle (running Moodle 2.6.2) (hosted on same server as above) 

要件: 私はDrupalの中のMoodleの機能を使用したいです。自分のMoodleユーザーが自分のMoodle資格情報を使ってDrupalにログインしてもらいたいです。

Moodleの資格情報を使ってDrupalにログインしたユーザーは、DrupalのMoodleコースにアクセスする必要があります。

私のアプローチ: は、Drupalのにムードルからコースやその他の情報のリストを取得し、ユーザーを認証するためにPHPファイルにAJAX要求を送信し、(Drupalサイトにホストされている)外部のPHPファイルにMoodleの設定ファイルをインクルードします。

私はまだこの要件に取り組んでいます。この要件を満たすための簡単なアプローチがあるかどうかは疑問です。

答えて

1

Moodleには、まさにこのユースケースのための非常に広範なWebサービスがあり、見て回れば、2つのシステム間でSSOを達成する方法はいくつかあります。

+0

Moodle Webサービスに関する情報はhttps://docs.moodle.org/33/en/Web_services_FAQを参照してください。 – luisdev

-1

この要件の単純な解決策はありません。それでも、あなたはこれを達成することができます。

  1. DrupalとしてMoodle UIをカスタマイズします。
  2. SSOをMoodleで実装する。
  3. Drupalダッシュボードのコースリストへのリンクを追加します。

SSOおよびその他のWebサービスについては、linkを参照してください。

0

あなたは正しい軌道に乗っていますが、他のシステムにログインしているユーザーがmoodleに自動ログインできるように、同じではない類似のソリューションも実装しています。 -

<?php 


require('config.php'); 
$name=strtoupper($_REQUEST['username']); 
$password=$_REQUEST['password']; 
$dashboard = $CFG->wwwroot; 
$user = authenticate_user_login($name, $password); 
if(complete_user_login($user)) 
{ 
    $actual_link = "http://$_SERVER[HTTP_HOST]/moodlevxl/login/logout.php?sesskey=".$user->sesskey; 

     header("http://$_SERVER[HTTP_HOST]"); 
     ?> 
     <script> 
      location.href = "Your callback url"; 
     </script> 
     <?php 
    //print_r($_COOKIES); 
//echo "login"; 
} 
else 
{ 
    echo "not login"; die; 
} 



?> 
関連する問題