2016-06-17 2 views
0

서버에 무들 인스턴스를 설치했고 동일한 서버에 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) 

요구 사항 : 내가 드루팔에 무 기능을 사용하고 싶습니다. 내 Moodle 사용자가 자신의 무들의 자격 증명을 사용하여 Drupal에 로그인하게하고 싶습니다.

자신의 무들 자격을 사용하여 드루팔 (Drupal)에 로그인 한 사용자는 드루팔 (Drupal)의 무들 코스에 액세스 할 수 있어야합니다.

내 방식 : 은 (드루팔 사이트에서 호스팅)는 외부 PHP 파일에서 무 설정 파일을 포함, 사용자를 인증 드루팔에 무에서 교육 과정 목록 및 기타 정보를 얻을 수있는 PHP 파일을 AJAX 요청을 보냅니다.

저는 여전히 요구 사항을 다루고 있습니다. 이 요구 사항을 충족시키기위한 간단한 접근 방법이 있는지 궁금합니다.

답변

1

Moodle은이 사용 사례와 관련하여 매우 광범위한 웹 서비스 세트를 보유하고 있으며 두 가지 시스템간에 SSO를 달성 할 수있는 몇 가지 방법이 있습니다.

+0

무들 웹 서비스에 대한 정보는 https://docs.moodle.org/33/en/Web_services_FAQ를 참조하십시오. – luisdev

-1

이 요구 사항에 대한 간단한 해결책은 없습니다. 아직도, 당신은 이것을 달성 할 수 있습니다.

  1. 드루팔 (Drupal)으로 사용자 정의하십시오.
  2. 무들로 SSO를 구현하십시오.
  3. Drupal 대시 보드의 코스 목록에 대한 링크를 추가하십시오.

SSO 및 기타 웹 서비스의 경우 link을 참조하십시오.

0

옳은 길을 가고 있습니다. 다른 시스템에 로그인하면 사용자가 무들의 자동 로그인을 할 수 있도록 비슷하지만 비슷한 해결책을 구현했습니다. -

<?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; 
} 



?>