SlimFramework
SlimFramework php
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

Sentry es una potente herramienta que nos permite controlar la autorización y autenticación de nuestra aplicación, es decir, podemos crear un completo sistema de acceso de usuarios con muy poco código.

Slimstarter incorpora Sentry con dos ejemplos, login y registro, en esta ocasión vamos a ver cómo hacer el sistema de login con Sentry y SlimFramework.

Si tienes dudas para crear el proyecto te recomiendo que revises este tutorial.

Lo primero que podemos definir es el controlador BaseController el cuál tendrá un método que nos servirá después para hacer las redirecciones.


Ahora crea el controlador HomeController y añade el siguiente código.


Tenemos tres métodos, doLogin, el cuál procesará el login, login, el cuál mostrará el formulario de login y logout para cerrar la sesión del usuario.

Ahora vamos a crear las dos vistas que de momento necesitamos, crea el archivo master.twig con el siguiente contenido.


Si tienes dudas con eso revisa este tutorial.

Ahora crea el archivo login.twig con el siguiente contenido, el cuál simplemente contiene un formulario y varias comprobaciones para mostrar sesiones flash si existen.


Algo intereante son las funciones baseUrl y siteUrl, ya vienen definidas por defecto, simplemente debemos utilizarlas.

Si te fijas, el formulario apunta al método login, así que es momento de definir las rutas de la aplicación, abre el archivo routes.php y añade el siguiente código.


Si tienes dudas con este código revisa este tutorial.

Si ahora accedes a http://localhost/nombredetuproyecto/public/ verás el formulario de login, ahora debemos procesarlo, y para esto, vamos a utilizar Sentry, que con muy pocas líneas podemos hacer mucho.


Por defecto, los datos del único usuario generados en la instalación de Slimstarter son los siguientes.

Si tratas de acceder con esos datos todo debe funcionar correctamente, aunque obtendrás un error ya que la template admin.twig no existe y tampoco el controlador, también puebes probar a ver que sucede si los datos son incorrectos.

El controlador AdminController tiene el siguiente aspecto.


Cómo puedes ver, un método que renderiza una vista y gracias al método getUser de Sentry obtiene los datos del usuario logueado.

El archivo admin.twig simplemente tiene un saludo al usuario logueado, es tan sencillo cómo sigue.


Si ahora haces login serás redirigido a /admin y podrás ver el email del usuario logueado, si te fijas, tienes un botón para cerrar la sesión, abre el controlador HomeController y añade la lógica del método logout.


Eso es todo, utilizamos el método logout de Sentry, creamos una sesión flash y redirigimos a la página principal.