Как проходить авторизацию Moodle через другой сайт?

Как проходить авторизацию Moodle через другой сайт?

от Andranik Sharabchian -
Количество ответов: 3

Здравствуйте. У меня проблема. Помогите пожалуйста. труп

Я сделал страничку html, которая осуществляет автоматическую авторизацию в Moodle. Сделал я это следующим образом: Я скопировал тег <form> из страницы авторизации в Moodle в мою страницу и изменил типы всех тегов <input> на "hidden". Вот код:

 <form action="http://localhost/mooddllee/moodle-2.3.2/moodle/login/index.php" method="post" id="loginForm" target="DestForm" >
              <input type="hidden" name="username" id="username" size="15" value="sona" />
              <input type="hidden" name="password" id="password" size="15" value="xxxbaxxxxxbaxL4="  />
              <input type="hidden" name="rememberusername" id="rememberusername" value="1" checked="checked" />
  </form>

Потом поставил кнопку List of courses так:

<div align="center" class="buttons">
   <input type="button" name="Course1" value="List of courses" class="button1" onClick="login()">
</div>    
Вот функция login() в JavaScript:

        function login(){
                document.getElementById("loginForm").submit();
                return true; }

При этих условиях, когда я нажимаю в странице на кнопку "List of courses", то захожу на домашнюю Moodle страницу пользователя "sona" (адрес: http://localhost/mooddllee/moodle-2.3.2/moodle/index.php)

Однако возникает проблема, когда я хочу поставить на своей страничке еще одну кнопку "First course", при нажадии которой пользователь "sona" должна опять таки пройти авторизацию, но потом автоматически перенаправиться на страницу соответствующего курса. Делаю я это так:

Сначала в коде своей странички добавляю в <form> еще один <input>:

              <input type="hidden" name ="courseur" />

Потом в <div> добавляю еще одну кнопку:

  <input type="button" name="Course1" value="First course" class="button1" onClick="redirection()">

Вот функция redirection() в JavaScript:

    function redirection(){
              document.getElementById("loginForm").submit();
              document.getElementById("courseur").value = "http://localhost/mooddllee/moodle-2.3.2/moodle/course/view.php?id=3";
              return true;
        }

"http://localhost/mooddllee/moodle-2.3.2/moodle/course/view.php?id=3" - это страница, на которую нужно перенаправится.

И наконец в http://localhost/mooddllee/moodle-2.3.2/moodle/index.php  добавляю следующее:

<?php
// echo $_POST['courseur'];
if(!empty($_POST['courseur']))
{
?>
<meta http-equiv="refresh" content="1;url='<?php echo $_POST['courseur'];?>'" />
<?php
}
?>

Но ни какого перенаправления не происходит, потому что в $_POST ничего не пишется. Я думаю, что тут проблема с сессиями. Подскажите пожалуйста, как правильно перенаправится на другую страницу.

 P.S.  Извините за длинную лекцию. стесняюсь

В ответ на Andranik Sharabchian

Re: Как проходить авторизацию Moodle через другой сайт?

от Andranik Sharabchian -
В ответ на Andranik Sharabchian

Re: Как проходить авторизацию Moodle через другой сайт?

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle

Смысл этого велосипеда неясен. Зачем дважды авторизоваться ? Тем более что авторизуется сессия. Пока ее не закрыл - можно пользоваться.

Если пользователь не авторизовался, то при попытке зайти в курс недопускающий гостей, вас перенаправят на авторизацию и потом вернетесь назад в курс.

Чем не устраивает гостевой вход на используемые курсы?

В ответ на Виталий Лавров

Re: Как проходить авторизацию Moodle через другой сайт?

от Andranik Sharabchian -

Все разрешилось. У меня была ошибка в коде html. Я хотел методом POST отправить значение через document.getElementById, но теге <input> не поставил "id". Тупая ошибка вышла. широко улыбаюсь

Спасибо всем.