Есть ли способ для единого входа в Moodle из приложения Laravel?

#php #single-sign-on #moodle #laravel-5.7

#php #единый вход #moodle #laravel-5.7

Вопрос:

Я настраиваю функцию единого входа в moodle с веб-сайта laravel.

  1. Пользователь получает доступ к сайту laravel

  2. Пользователь входит в систему

  3. Пользователь нажимает ссылку на Moodle

  4. Пользователь автоматически входит в Moodle без необходимости повторно вводить свое имя пользователя и пароль.

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

Я попытался использовать php cURL, чтобы ввести имя пользователя и пароль в URL-адрес входа.

 $url =  "http://moodle.site.com.na/sso/login/index.php";
$postData = array('username' => $username, 'password' => $password);
try {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
}
catch(Exception $e){
    dd($e);
}
return $response;​
  

При успешном выполнении единого входа пользователь должен автоматически авторизоваться на сайте moodle без необходимости повторного ввода своего имени пользователя и пароля.

Ответ №1:

Да — есть пара распространенных решений в зависимости от ваших потребностей:

  • Используйте / настройте существующий плагин аутентификации единого входа — это здорово, если вы уже внедрили определенный тип аутентификации в своем приложении — например, SAML, OAuth, OpenID и т.д.:https://moodle.org/plugins/browse.php?list=categoryamp;id=21
  • Создайте свой собственный плагин аутентификации: https://docs.moodle.org/dev/Authentication_plugins

Надеюсь, все пройдет хорошо!

Комментарии:

1. Мне нужна помощь в том, как это сделать, ниже приведен мой сценарий… Пользователь получает доступ к основному сайту, Пользователь регистрируется на сайте, Пользователь нажимает ссылку на Moodle (SiteB) Пользователь автоматически регистрируется в Moodle (SiteB) без необходимости повторного ввода своей информации, если пользователь делает закладки или напрямую обращается к Moodle (SiteB), он все равно может войти непосредственно туда