moodle和codeigniter之间的快速SSO


Quick SSO between moodle and codeigniter

我正试图在moodle和codeigniter应用程序之间实现一些快速sso ..

我浏览了CAS,觉得它很复杂,或者至少不能快速掌握。

所以我决定做一些变通…并开始使用jquery与用户名和密码的ajax请求。

$(function(){
    $.post("/moodle/login/index.php", {username:'9535953595',password:'password'}, function(data) {
      console.log(data);
    });
});

一旦这是成功的(我能够进入moodle网站没有输入登录详细信息..接近SSO我猜…),因为javascript会暴露宝贵的数据,如密码…我决定使用curl或zend HTTP客户端来发布数据。这在一定程度上起了作用。它还返回了moodle主页作为结果体

$client = new Zend_Http_Client('http://localhost/moodle/login/index.php');
$client->setCookieJar();
$client->setParameterPost(array(
    'username' => 9535952595,
    'password' => 'password'
));//POST
$response = $client->request('POST');//POST
print_r($response->getBody()); // MOODLE HOME PAGE HERE ;)

但似乎有一个问题,建立一个稳定的cookie或浏览器会话…PHP的方式不能生成cookie或moodle浏览器会话。随后的moodle网址无法访问…不像ajax调用会创建一个真正的会话。

有谁能提出一个解决这个问题的好方法吗?

AJAX调用是由客户机浏览器发出的,因此它在客户机和moodle之间创建了一个会话。curl位于codeigniter和moodle之间,因此很难工作。

我只能想到一个工作的解决方案,以这种方式是有一个中间页,有一个隐藏的表单与用户名和密码,并提交到moodle登录页面上onload由javascript。这也不会比您已经尝试过的ajax更安全。

强烈建议使用某个SSO服务器。