Я пытаюсь вручную аутентифицировать пользователя в moodle с помощью плагинов аутентификации, но я не понимаю всего, что необходимо для работы всего процесса. Итак, некоторые предложения о том, что мне здесь не хватает, были бы очень полезны!
Я создал плагин, включил его, и он работал, но только в НЕКОТОРЫХ случаях, и в этом моя проблема. Я предполагаю, что в какой-то момент мне действительно нужно вызвать функцию, которая сохраняет информацию о пользователе в базе данных Moodle. Но опять же, я не уверен, где он находится и как он работает. Итак... эксперты, помогите мне.
Вот две функции, которые я изменил в своем плагине аутентификации. (авторизация.php)
function loginpage_hook() {
global $CFG, $DB, $user, $frm, $errormsg;
$IsAuthenticated = false;
if(isset($_COOKIE["AUTHENTICATION_KEY"])){
$json = file_get_contents("WWW.WEBSERVICEURL.COM",true);
//getting the file content
$decode = json_decode($json, true);
//getting the file content as array
if($decode["AuthFlag"]){
$ucUser = $decode["Username"];
$user = $DB->get_record('user', array('username'=>$ucUser, 'mnethostid'=>$CFG->mnet_localhost_id));
$frm->username = $ucUser;
$IsAuthenticated = true;
}
}
if(!$IsAuthenticated && empty($frm->username)){
$errormsg = ".";
}
}
/**
* Returns true if the username and password work or don't exist and false
* if the user exists and the password is wrong.
*
* @param string $username The username
* @param string $password The password
* @return bool Authentication success or failure.
*/
function user_login ($username, $password) {
global $CFG, $DB, $user;
if(!$user){ return false; }
if(isset($_COOKIE["AUTHENTICATION_KEY"])){
$json = file_get_contents("WWW.WEBSERVICEURL.COM", true);
//getting the file content
$decode = json_decode($json, true);
//getting the file content as array
if($decode["AuthFlag"]){
$ucUser = $decode["Username"];
if($user->username = $ucUser){ return true; }
}
}
return false;
}