Usuario:ManuelRomero/Laravel/autentificacion/introduccion

De WikiEducator
Saltar a: navegación, buscar


https://www.youtube.com/watch?v=BXXmboZRLYo




Conceptos generales

  • La autentificación es otra de las muchas tareas comunes en cualquier aplicación que en el fondo no es parte de la aplicación sino un nivel de seguridad o compromiso que nuestra app pretende adoptar.
  • Laravel gestiona la autentificación en varios ficheros según vamos a ver a continuación.
  • Laravel nos ofrece la autentificación como un servicio.
  • Laravel tiene preconfigurada la autentificación la cual la podemos activar de manera sencilla.
  • Sistemas de authentificación posibles con laravel:
  1. Autentificación básica con http
  2. Breeze
  3. Fortity
  4. Jetstream
  5. Sanctum
  6. Passport

Autentificación básica con http

Autentificación implementada en Laravel: Breeze

  • Este paquete aporta los siguientes elementos:
En el backend
Vistas
Rutas y controladores
En el frontend
Tailwindcss/blade
Acciones implementadas
Registro
Login
Logout
Resestablecimiento de contraseña
Confirmación por email


Fichero de configuración
config/auth.php
  • Un listado de este fichero


Icon key points.gif

Puntos clave

Como podemos ver la autentificación en Laravel está configurada por dos elementos que podemos modificar: Guards y Providers.


Icon define.gif
Guards y Providers
  • Guards definen cómo el sistema debe de almacenar y recuperar información sobre los usuarios autenticados en cada solicitud. Por ejemplo sesiones o tokens
  • Providers Definen cómo se obtienen los datos almacenados de manera persistente en el sistema. (Base de datos, tabla, campos ...)




Autentificación con laravel

En este caso vamos a generar la autentificación más básica, de las que ofrece laravel que va a consistir en usuario y password

Partimos de un proyecto instalado en laravel, si no, creamos uno nuevo
  • Debemos tener instalado git, node y npm, si no lo tuviéramos instalado lo instalamos
 apt-get install git
 curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash

El comando nos instalará nodejs 16 y npm en la versión 8

node -v
  v16.14.0
npm -v
  8.3.1
➜  ~ 
</node>
 
*Creamos el proyecto nuevo
<source lang=bash>
 laravel new auth
</>
;Instalamos el paquete laravel/breeze que implementa la auth básica pero completa
<source lang=bash>
composer require laravel/breeze

Ahora debemos publicar las rutas, controladores, vistas y otros recursos para la autentificación, para ello ejecutamos el siguiete comando

 php artisan breeze:install
  • Nos dará el siguiente mensaje
Breeze scaffolding installed successfully.
Please execute the "npm install && npm run dev" command to build your assets.
  • Y hacemos lo que pide, ya que esta implementación usa taildwind como css y otros paquetes en el front. Ahora debemos instalar todos los paquetes del cliente, que se necesita para su ejecución.
  • Para este comentido se utiliza la herramienta npm https://www.npmjs.com/ que es un gestor de paquetes de nodejs y lo vamos a usar en laravel para descargar paquetes relaciondos con el front
npm install 
npm run dev

Puede ser que nos indique que instalemos una versión superíor, lo hacemos, como en mi caso

 sudo npm install -g npm@8.5.1
  • Ahora creamos las tablas necesarias para la authentificaicón (user, password_resets y personal_access_token). Éstas ya vienen preparadas en migraciones con la aplicación inicial.

Para ello lo primero establecemos los parámetros de conexión en el fichero de configuración .env

Auth env.png
  • Ahora ejecutamos las migraciones para crear las tablas
php artisan migrate

Tras ejecutarla, podemos ver cómo nos han creado estas tablas

Auth tablas.png
  • Ahora ya podemos usar la autentificación, vemos cómo tenemos nuevas rutas, nuevos controladores y nuevas vistas.
  • Probamos cómo efectivamente funciona creando una ruta que nos retorne una vista y poniéndoe un midellware auth. Todo lo vamos a analizar más despacion, pero observemos su funcionamiento.
  • En web.php tenemos la ruta por defecto de la instalación
Route::get('/', function () {
    return view('welcome');
});
  • Le ponemos la autentificaicón
Route::get('/', function () {
    return view('welcome');
})->middleware("auth");
  • Y Ahora al solicitar el recurso, nos pide que nos autentifiquemos, redirigiéndonos a la página de login
Auth login.png

Estudiando los elementos creados

Breeze utiliza
  • taildwindcss y blade
  • Vistas
  • Rutas y controladores
Todo ello para las siguientes acciones
  • login
  • logout
  • Register
  • Reestablecer contraseña
  • Confirmar email
  • Confirmar contraseña


  • 1.- taildwindcss
  • Incluye una serie de operaciones típicas como son:

1.-Inicio de sesión, 2.-Registro de ususario, 3.-Restablecimiento de contraseña,

4.-Verificación de correo electrónico y confirmación de contraseña.