Быстрый SSO между Moodle и Codeigniter - PullRequest
0 голосов
/ 02 января 2012

Я пытаюсь реализовать быстрое взаимодействие между Moodle и приложением Codeigniter.

Я прошел CAS и почувствовал, что он сложный или, по крайней мере, не так быстро понять.

Поэтому я решил сделать какой-то обходной путь ... и начал с того, что отправил ajax-запрос, используя jquery с именем пользователя и паролем.

$(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 ... и последующие URL-адреса moodle были недоступны ... в отличие от вызова ajax, который действительно создавал реальный вызов сессия ..

Может кто-нибудь предложить хороший способ решения этой проблемы ..

1 Ответ

0 голосов
/ 10 сентября 2012

AJAX-вызов выполняется клиентским браузером, поэтому он создает сеанс между клиентом и Moodle.Скручивание между codeigniter и moodle, так что оно вряд ли сработает.

Я могу думать только о рабочем решении, таким образом, это иметь среднюю страницу, которая имеет скрытую форму с именем пользователя и паролем и передается в Moodle.Страница входа при загрузке с помощью JavaScript.Это снова не будет более безопасным, чем ajax, который вы уже пробовали.

Настоятельно рекомендуется использовать некоторый SSO-сервер.Это довольно легко в наши дни.

...