Skip to content

Authentication

1. Iniciar sesión (Login)

- local_servicerefactor_auth_user_login

Descripción: Autentica a un usuario mediante email y contraseña, devolviendo tokens de acceso (JWT), token de servicio (wstoken) y datos del perfil.

Endpoint: local_servicerefactor_auth_user_login
Método: POST
Argumentos:

  • wstoken: string | token de Manager
  • moodlewsrestformat: json | formato de la respuesta
  • wsfunction: string | local_servicerefactor_auth_user_login
  • email: string | Email del usuario
  • password: string | Contraseña en texto plano

Respuestas:

Login correcto

{
"status": 200,
"code": 0,
"message": "",
"body": [
"wstoken": Token del usuario
"token": Token jwt
"refreshtoken": Refresh token
"id": ID del token
"name": Nombre del usuario
"lastname": Apellido del usuario
"email": Email del usuario
"userpicture": Foto del usuario
"publicprofile": 1 si es cuenta publica, 0 si es privada
"lang": Idioma preferido del usuario
"firstaccess": Bandera para indicar primer acceso
"role": ID de rol
"timezone": Zona horaria
]
}

2. Autenticar con Token

- local_servicerefactor_auth_user_token

Descripción: Realiza el login utilizando un token firmado previamente (laab2), útil para integraciones SSO o redirecciones desde el manager.

Endpoint: local_servicerefactor_auth_user_token
Método: POST
Argumentos:

  • wstoken: string | token de Manager
  • moodlewsrestformat: json | formato de la respuesta
  • wsfunction: string | local_servicerefactor_auth_user_token
  • token: string | Token firmado
  • manager: int | Flag para indicar si viene del manager (0 o 1) (Opcional, por defecto 0)

Respuestas:

Autenticación correcta

{
"status": 200,
"code": 0,
"message": "",
"body": [
"wstoken": Token del usuario
"token": Token jwt
"refreshtoken": Refresh token
"id": ID del token
"name": Nombre del usuario
"lastname": Apellido del usuario
"email": Email del usuario
"userpicture": Foto del usuario
"publicprofile": 1 si es cuenta publica, 0 si es privada
"lang": Idioma preferido del usuario
"firstaccess": Bandera para indicar primer acceso
"role": ID de rol
"timezone": Zona horaria
"courseid": ID de curso
]
}

3. Generar acceso para estudiante

- local_servicerefactor_generate_access_student

Descripción: Permite a un usuario con roles permitidos (manager, profesor, tutor, etc.) generar un token de acceso temporal para un estudiante específico.

Endpoint: local_servicerefactor_generate_access_student
Método: POST
Argumentos:

  • wstoken: string | token de Manager
  • moodlewsrestformat: json | formato de la respuesta
  • wsfunction: string | local_servicerefactor_generate_access_student
  • email: string | Email del estudiante objetivo
  • token: string | Token del usuario que solicita el acceso

Respuestas:

Token generado

{
"status": 200,
"code": 0,
"message": "",
"body": [
"accesstoken": Token de acceso
]
}

4. Generar acceso estudiante (Externo)

- local_servicerefactor_generate_access_student_external

Descripción: Genera un token de acceso para un estudiante utilizando un token externo validado contra claves públicas almacenadas.

Endpoint: local_servicerefactor_generate_access_student_external
Método: POST
Argumentos:

  • wstoken: string | token de Manager
  • moodlewsrestformat: json | formato de la respuesta
  • wsfunction: string | local_servicerefactor_generate_access_student_external
  • email: string | Email del estudiante
  • token: string | Token externo firmado

Respuestas:

Token generado

{
"status": 200,
"code": 0,
"message": "",
"body": {
"accesstoken": Token de acceso
}
}

5. Refrescar token

- local_servicerefactor_refresh_user_token

Descripción: Genera un nuevo token de acceso (JWT) válido por 24 horas utilizando un refreshtoken válido.

Endpoint: local_servicerefactor_refresh_user_token
Método: POST
Argumentos:

  • wstoken: string | token de Manager
  • moodlewsrestformat: json | formato de la respuesta
  • wsfunction: string | local_servicerefactor_refresh_user_token
  • refreshtoken: string | Token de refresco

Respuestas:

Nuevo token generado

{
"status": 200,
"code": 0,
"message": "",
"body": {
"token": Token de acceso
}
}