我在服务器上安装了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课程。
我的方法: 将Moodle配置文件包含在外部PHP文件中(托管在Drupal站点上),将AJAX请求发送到PHP文件以验证用户,获取课程列表以及从Moodle到Drupal的其他信息。
我仍在努力完成这项要求。想知道是否有任何简单的方法来满足这一要求。
答案 0 :(得分:1)
Moodle有一套非常广泛的网络服务用于这个用例,如果你浏览一下,有两种方法可以在两个系统之间实现SSO。
答案 1 :(得分: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;
}
?>
答案 2 :(得分:-1)
这个要求没有简单的解决方案。不过,你可以做到这一点。
对于SSO和其他网络服务,请参阅此here。