【问题标题】:How to use Moodle API or Moodle functions in Drupal?如何在 Drupal 中使用 Moodle API 或 Moodle 函数?
【发布时间】:2016-06-17 06:46:18
【问题描述】:

我在服务器上安装了一个 Moodle 实例,在同一台服务器上安装了一个 Drupal 实例。但是,它们都使用不同的域。

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 课程。

我的方法: 在外部 PHP 文件中包含 Moodle 配置文件(托管在 Drupal 站点上),向 PHP 文件发送 AJAX 请求以验证用户身份,从 Moodle 获取课程列表和其他信息到 Drupal。

我仍在处理该要求。想知道是否有任何简单的方法可以满足此要求。

【问题讨论】:

    标签: moodle


    【解决方案1】:

    Moodle 为这个用例提供了非常广泛的 Web 服务集,如果您环顾四周,有几种方法可以在两个系统之间实现 SSO。

    【讨论】:

    • 有关 Moodle 网络服务的信息,请参见 docs.moodle.org/33/en/Web_services_FAQ
    • 这是正确的做法。如果该功能尚未在核心 web 服务中实现,您可以通过创建本地 web 服务插件来滚动自己的功能。
    【解决方案2】:

    您在正确的轨道上,我还实施了不同但相似的解决方案,以便用户在登录到另一个系统时可以自动登录到 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;
    }
    
    
    
    ?>
    

    【讨论】:

      【解决方案3】:

      首先你需要启用和使用moodle webservices,关注this link.

      那么你可以使用moodle-auth_userkey 插件来实现简单的SSO,this link. 会帮助你。

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
      【解决方案4】:

      这个要求没有简单的解决方案。不过,您可以做到这一点。

      1. 将 Moodle UI 自定义为 Drupal。
      2. 使用 Moodle 实现 SSO。
      3. 在 Drupal 仪表板上添加指向课程列表的链接。

      对于 SSO 和其他 Web 服务,请参阅此link

      【讨论】:

        猜你喜欢
        • 2021-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多