Sesiones y autenticación en PHP.

Caso práctico

Ocultar

Foto del personaje Carlos.
Elaboración propia (CC0)

Va siendo hora de comenzar a dar pasos firmes en el desarrollo del nuevo proyecto, y en BK Programación ultiman los preparativos y se toman las últimas decisiones para establecer el método que seguirán en su desarrollo.

Mientras, Carlos revisa los conocimientos adquiridos y decide hacer una lista con todo lo aprendido hasta el momento y otra con todo lo que aún no sabe hacer. El saldo final es bastante positivo: ya sabe utilizar variables, hacer llamadas a funciones, estructurar el código, utilizar formularios web, trabajar con bases de datos… ¡Incluso ha diseñado una pequeña página para gestionar su colección de comics!

Entre lo que no sabe hacer todavía hay algo que le llama la atención: no sabe cómo mantener los datos entre las distintas páginas de una aplicación. Es decir, la única forma que conoce es utilizando un formulario web…, o bases de datos. Pero tiene que haber otras maneras más adecuadas. Algún modo sencillo de mantener información del usuario dentro de la aplicación web.

De nuevo tendrá que pedir consejo a Juan.

Ocultar

Imagen que muestra dos manos con los pulgares hacia arriba.
Leopold Böttcher (Licencia de contenido (Pixabay))


En esta unidad nos adentrarnos en un nuevo nivel en lo relativo al desarrollo de aplicaciones web. Si analizas como son hoy día la mayoría de los sitios que visitas de Internet te darás cuenta de que todos, o casi todos, implementan mecanismos de autentificación y autorización. Es decir, se provee de un mecanismo para que el usuario pueda iniciar sesión, realizar algún conjunto de acciones en el sitio web que involucran el uso de información propia y privada, y después, cuando el usuario estima oportuno o cuando se dan circunstancias concretas, se lleva a cabo el cierre de la sesión.

Este proceso, a priori sencillo, tiene repercusiones importantes:

  • ¿Cómo inicia sesión el usuario? Las aplicaciones web han de proveer de un mecanismo para que el usuario inicie sesión. Lo más común es que el usuario introduzca su usuario y su contraseña en un formulario, en lo que conocemos como autenticación basada en formulario, pero existen otros mecanismos para realizar la autenticación de usuario que al menos debes conocer.
  • ¿Cómo se mantiene abierta la sesión de usuario? El protocolo HTTP es un protocolo sin estado, es decir, no necesita que el usuario inicie sesión para operar, tal y como si que ocurre en otros protocolos como FTP o SSH. HTTP no necesita que iniciemos sesión, podemos consultar cualquier página, como la Wikipedia o www.juntadeandalucia.es sin usar usuario y contraseña. Los mecanismos de inicio de sesión los implementa el programador o la programadora en la aplicación web desarrollada. Esto implica que, además de autenticar al usuario, se hace necesario utilizar algún método para propagar la sesión, es decir, para hacer que la información asociada al usuario autenticado perviva hasta que realice el cierre de sesión. Los mecanismos más habituales para propagar la sesión son el uso de cookies y sesiones.  
  • ¿Cómo se determina que puede hacer un usuario en la aplicación web? El programador o la programadora será responsable de la lógica de privilegios. Esto quiere decir que somos responsables de restringir lo que el usuario final puede hacer en la aplicación web y también, muy importante, de lo que no puede hacer. Si un usuario accede a datos que no son suyos, la aplicación web puede verse inmersa en serios problemas legales.

 En esta unidad abordaremos estos importantes aspectos de forma introductoria.