moodle和codeigniter之间的快速SSO

时间:2012-01-02 06:45:23

标签: php session jquery single-sign-on moodle

我正在尝试在moodle和codeigniter应用程序之间实现一些快速的解决方案..

我经历了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方式dint生成cookie或moodle浏览器会话..并且后续的moodle URL无法访问..不像ajax调用确实创建了一个真实的会议..

任何人都可以建议一个处理这个问题的好方法..

1 个答案:

答案 0 :(得分:-1)

客户端浏览器正在进行AJAX调用,因此它在客户端和moodle之间创建了一个会话。卷曲是在codeigniter和moodle之间进行的,因此几乎不起作用。

我只能想到这样一个工作解决方案是有一个中间页面,其中包含一个带有用户名和密码的隐藏表单,并通过javascript在onload上提交给moodle登录页面。这再次不会比你已经尝试过的ajax更安全。

强烈建议使用某些SSO服务器。这些天很容易。