Сделать авторизацию на сайте с moodle на другом сайте

Сделать авторизацию на сайте с moodle на другом сайте

от Алина Алина -
Количество ответов: 2

Добрый вечер!


на обычном сайте будет форма авторизации: логин и пароль. После ввода данных надо проверить есть ли такой пользователь. Если есть, то произвести редирект на сайт с moodle и авторизоваться с веденными данными


вот что я сделала:

ajax обработчик формы (на первом сайте)

function send() {
        var username = $('#username').val();
        var password = $('#password').val();
       
        var url = "http://site.ru/school/conn_site.php";
       
        $.ajax({
            url: url,
            type: "POST",
            data: "username="+username+"&password="+password,
            success: function(responce) {
                alert(responce);
            
                document.location = url;
            },
            error:  function(xhr, str){
                //alert(str + ' Возникла ошибка: ' + xhr.responseCode);
                alert('Неверный логин или пароль');
            }
        });
    };


на втором сайте, с moodle создала  файл, который проверяет полученные данные. Если есть такой пользователь, то надо авторизовать его на сайте. Файл conn_site.php содержит такой код:

<?
require('config.php');

$username = $_REQUEST['username'];
$password = $_REQUEST['password'];

$dashboard = $CFG->wwwroot;
$user = authenticate_user_login($username, $password);
if(complete_user_login($user))
{
    echo "login";
}


если веденые данные верны, получаю "login", то есть есть такой пользователь

Но переходя редиректом на этот файл авторизация не происходит

выходит ошибка: http://prntscr.com/6itffm


но если я в файле conn_site.php задам правильные данные для $username и $password и открою ее в браузере  - то авторизация происходит


что почему я при редиректе не могу авторизироваться?

Помогите подалуйста

В ответ на Алина Алина

Re: Сделать авторизацию на сайте с moodle на другом сайте

от Alexander Mamonov -

/*
http://cwestblog.com/2012/11/21/javascript-go-to-url-using-post-variable/
*/
function postURL(url, multipart) {
var form = document.createElement("FORM");
form.method = "POST";
if(multipart) {
form.enctype = "multipart/form-data";
}
form.style.display = "none";
document.body.appendChild(form);
form.action = url.replace(/\?(.*)/, function(_, urlArgs) {
urlArgs.replace(/\+/g, " ").replace(/([^&=]+)=([^&=]*)/g, function(input, key, value) {
input = document.createElement("INPUT");
input.type = "hidden";
input.name = decodeURIComponent(key);
input.value = decodeURIComponent(value);
form.appendChild(input);
});
return "";
});
form.submit();
}

function moodle_login_link() {
var username = encodeURIComponent("login");//$('#username').val();
var password = encodeURIComponent("password");//$('#password').val();
var url = "http://my-moodle-site.com/moodle/login/index.php";

postURL(url+"?username="+username+"&password="+password,false);
}

-------------------------------
Но передавать таким образом логин-пароль совсем не безопасно, есть идеи?