Actualmente estoy trabajando con la version 1.5+ de Moodle y estoy trabajando en integrarlo con mi pagina web, para esto le pido el login y password al usuario. Todo esto en mi pagina, es decir, no lo hago por el Moodle. Cuando el usuario intenta acceder a los servicios de mi pagina no hay ningun problema pues ya inicio sesion, el problema surge cuando intenta entrar al Moodle puesto que tiene que volver a escribir el login y password. Mi pregunta es, no hay alguna forma de crear la cookie para que el usuario no tenga necesidad de volverse a loguear cuando quiera entrar al Moodle.
Cualquier respuesta o comentario se les agradece.
En respuesta a Elkin Cervantes Vilar
Re: Hacer loguin por fuera de Moodle
Hola Elkin,
supongo que tendrías que hacer que la cookie generada por tu validación fuera exáctamente la misma(s) que las que genera Moodle cuando un usuario se valida, además de las estructuras que Moodle crea en la sesión una vez esta se inicia. De todas formas no tengo claro que andar "jugando" con las cookies sea la forma apropiada de hacerlo.
Con Moodle 1.5 viene la opción de utilizar autentificación Shibboleth, que permite hacer SSO (single-sign-on) entre varias aplicaciones y esa sería una buena forma de abordar el problema aunque, tal vez, se te complique demasiado, ya que requiere instalar un servidor Shibboleth y demás...
Ciao
supongo que tendrías que hacer que la cookie generada por tu validación fuera exáctamente la misma(s) que las que genera Moodle cuando un usuario se valida, además de las estructuras que Moodle crea en la sesión una vez esta se inicia. De todas formas no tengo claro que andar "jugando" con las cookies sea la forma apropiada de hacerlo.
Con Moodle 1.5 viene la opción de utilizar autentificación Shibboleth, que permite hacer SSO (single-sign-on) entre varias aplicaciones y esa sería una buena forma de abordar el problema aunque, tal vez, se te complique demasiado, ya que requiere instalar un servidor Shibboleth y demás...
Ciao
En respuesta a Eloy Lafuente (stronk7)
Re: Hacer loguin por fuera de Moodle
Lo de las cookies ya lo sabia, de hecho intente crearlas y para eso me guie de la pagina login.php e index.php que estan en la carpeta login y me resulto bien, pero solo funciona cuando lo corro en la misma carpeta de moodle, pero cuando lo corro fuera de la carpeta de moodle no funciona, no se si sera porque estoy utilizando las funciones de moodle. Entonces, no hay alguien que me pueda ayudar.
Hola Ekin,
Prueba a desactivar la variable secureforms de tu moodle y vuelve a intentar lo que ya tienes hecho. Puede que el problema esté ahí.
NOTA: Cuando yo intenté hacer login desde fuera de moodle sólo lo conseguí desactivando esta variable de la configuración de Moodle. Aunque en este caso, puede que estés creando un agujero de seguridad en tu moodle.
Suerte y Salu2.
Raul.
De hecho no la tengo activada. Miren, haber si me explico bien. Yo lei el contenido de los archivos login.php e index.php de la carpeta login, cierto?. Entonces cree mi propio script que leia el nombre del usuario y la contraseña y lo validaba con mi servidor IMAP. Hasta ahi vamos bien. Mi script estaba tambien dentro de la carpeta login. Lo que coloque dentro del script fue:
require_once("../config.php");
$user = authenticate_user_login($username,$password);
update_login_count();
$USER = $user;
add_to_log(SITEID, 'user', 'login', "view.php?id=$USER->id&course=".SITEID, $USER->id, 0, $USER->id);
update_user_login_times();
set_moodle_cookie($USER->username);
set_login_session_preferences();
que es lo que hacen el login.php y el el index.php de moodle. Lo ejecute y el resultado fue lo que yo esperaba, pude hacer el login con mi propio script. El problema surge cuando todo ese codigo lo saco de la carpeta login y de la carpeta del moodle porque no ejecuta. Las refencias a los archivos estan bien proque cambien el require_once("../config.php"); por la nueva ruta que debia tener el archivo es decir require_once("ruta_del_moodle/config.php"); pero no funciona, entonces mi pregunta es, que estoy haciendo mal?, sera que las funcioines de moodle que estoy utilizando solo funcionan dentro de la carpeta de moodle y no por fuera? hay alguna manera de que funcionen por fuera?
Espero haberme hecho entender.
require_once("../config.php");
$user = authenticate_user_login($username,$password);
update_login_count();
$USER = $user;
add_to_log(SITEID, 'user', 'login', "view.php?id=$USER->id&course=".SITEID, $USER->id, 0, $USER->id);
update_user_login_times();
set_moodle_cookie($USER->username);
set_login_session_preferences();
que es lo que hacen el login.php y el el index.php de moodle. Lo ejecute y el resultado fue lo que yo esperaba, pude hacer el login con mi propio script. El problema surge cuando todo ese codigo lo saco de la carpeta login y de la carpeta del moodle porque no ejecuta. Las refencias a los archivos estan bien proque cambien el require_once("../config.php"); por la nueva ruta que debia tener el archivo es decir require_once("ruta_del_moodle/config.php"); pero no funciona, entonces mi pregunta es, que estoy haciendo mal?, sera que las funcioines de moodle que estoy utilizando solo funcionan dentro de la carpeta de moodle y no por fuera? hay alguna manera de que funcionen por fuera?
Espero haberme hecho entender.
Hola Elkin
Nunca he mirado el config ni el login por dentro pero, ¿Hay alguna referencia a cualquier otro fichero dentro de estos?
Saludos
Si pero solo a un archivo, se llama setup.php y esta en el direxctorio lib.
En este enlace http://moodle.org/mod/resource/view.php?id=1267 vienen muchas funciones del moodle ordenadas por el fichero que lo contiene, te aconsejo que mires en ke archivo estan tus funciones y te lo copies.