2013-10-14 2 views
2

Мне было интересно, можно ли автоматически войти в moodle после входа в систему на другом сайте? Я попытался использовать завиток, но, похоже, он не работает.Автоматический вход в moodle при входе на другой сайт

Это мой код тестирования:

//set POST variables 
$url = "http://moodlesite.com/login/index.php"; 

$fields = array(
    'username' => 'username', 
    'password' => 'password' 
); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, count($fields)); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields)); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 

Я заметил, что после того, как MOODLE входа в систему, они переадресовать его снова http://moodlesite.com/login/index.php?testsession=userid и они нуждаются в куки оно этот случай.

+0

Если это хорошо построенный веб-сайт, они не должны позволять вам отправлять POST имени пользователя и пароля через CURL без информации, отправляемой из их собственной собственной формы. Они должны препятствовать CSRF. Хотя я мало знаю о капризе. – vinsanity38

+0

Каков был конечный результат? – vinsanity38

ответ

0

Не так, Moodle необходимо настроить сеанс в вашем браузере, чтобы вы вошли в систему. В общем, ваше требование звучит странно: чего именно вы пытаетесь достичь?

Если вы предпочитаете, чтобы избежать ваших пользователей, заходящие в два раза, вы бы лучше реализации какое-то единый вход системы:

Если ни один из них не подходит, вы также можете создать свой собственный плагин аутентификации. См. Authentication plugins в документах Moodle и lib/authlib.php.

6

Вы можете создать индивидуальную страницу для входа в moodle.

код для этой страницы.

<?php 
require('config.php'); 
$name=$_REQUEST['name']; 
$password=$_REQUEST['password']; 
$dashboard = $CFG->wwwroot; 
$user = authenticate_user_login($name, $password); 
if(complete_user_login($user)) 
{ 
echo "login"; 
} 
else 
{ 
    echo "not login"; 
} 



?> 

После создания этой страницы вы можете передать имя и пароль для входа.

Смежные вопросы