Librería Users.js (2). Identificación

Anteriormente he descrito cómo se construye un formulario de registro de usuarios. Comentaba que, terminado el envío, era tarea del servidor enviar un correo electrónico de confirmación, lo que permite asegurar que quien aporta los datos es efectivamente el dueño de la cuenta. Pero es necesario un paso adicional para completar este chequeo: el usuario debe proporcionar al servidor un código contenido en dicho correo que sirva como confirmación. Lo usual es generar una clave cuya devolución se pide, por lo general incluyéndola como una variable en una URL. El servidor la recibe mediante el método GET y completa la validación del usuario. Y en tal caso, lo adecuado es enviar un segundo correo para informar de ello. No se describen estos pasos en detalle, ya que el propósito de estas entradas es presentar la librería Users.js, que recoge el código en Javascript para la gestión de usuarios.
Terminado el registro, podemos continuar con la identificación. Para llevarla a cabo, es necesario que la página web contenga inicialmente dos campos: un identificador (que en nuestro caso es el alias que hemos introducido en el registro, pero bien podría valer el correo electrónico) y la contraseña. También se debe dar posibilidad a restaurar dicha contraseña en caso de olvido, y de registrarse en caso de no haberlo hecho antes. Para estos dos fines se incluyen los botones correspondientes.

Como en otras ocasiones, se ha reservado una etiqueta span para mostrar mensajes de error. El más importante es la advertencia de que nos hemos equivocado al introducir el nombre o la contraseña.

Hago notar que el contenido del formulario de identificación no se muestra inicialmente, sino que se ha mantenido oculto. La razón es que se pretende usar la misma página para el acceso inicial y el contenido una vez ya nos hemos identificado. Haciendo esto se evita que el navegador salte a una página nueva, con el consiguiente retraso en la recarga. Esto mejora la experiencia de usuario, pero nos enfrenta a un problema: cuando se muestra la página por primera vez, es necesario averiguar si el usuario se ha identificado o no previamente. Como esta información no la almacena el navegador, sino el servidor en una variable de sesión, debemos de gestionar desde Javascript una consulta inicial para conocer este valor. Esta tarea, y la actualización de la página que lleva asociada, la he llevado a la función refresh_user que se ve ha visto al final del código del evento de envío de datos identificativos.

La función refresh_user hace visible (parte else) el formulario de identificación caso de que no se haya iniciado sesión. Pero si ya lo ha hecho, lo que se visibiliza es la capa registered, donde se muestra todo lo que debe verse al estar ya dentro. Esto incluye varios elementos:

  • El nombre de usuario.
  • El botón para cerrar sesión.
  • El botón para modificar datos del perfil. No voy a entrar en detalles sobre esta parte, para no hacer farragosa la entrada pero, como puede observarse, aunque los campos estén ocultos, se han rellenado con el código previo.
  • Y todo lo demás, que no se muestra por ser específico de cada proyecto, pero que estaría recogido dentro de la capa registered.

Por último, y me dejo algunos aspectos como la modificación de datos o la restauración de contraseña, es importante incluir la desconexión, que como se ve en el código de arriba se hace desde el botón logout. Dicho cierre se realiza desde el servidor, liberando todas las variables de sesión que se hayan podido crear, de modo que el código Javascript sólo debe hacer la llamada correspondiente y refrescar la página:

Recursos asociados:
Librería User.js para gestión de usuarios
Ejemplo de uso de la librería User.js

Facebooktwitterlinkedin