Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/autentificacion/introduccion»

De WikiEducator
Saltar a: navegación, buscar
(Conceptos generales)
 
(51 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/micursos/Laravel/autentificacion/nav}}
 
{{:Usuario:ManuelRomero/micursos/Laravel/autentificacion/nav}}
 +
{{__TOC__}}
 +
https://www.youtube.com/watch?v=BXXmboZRLYo
 +
<div class=parrafo>
 
<!--
 
<!--
Como ver el tema de puertos
+
{{MRM_actividad|Title=Para recordoar|
nmap localhost
+
;Instalacion
 +
composer require "laravel/breeze"
 +
php artisan breeze:install
 +
(tener instalado nodejs y npm)
 +
npm install
 +
npm run dev
 +
*Las migraciones
 +
Establecer los datos de conexión en el fichero .env
 +
ejecutar las migracionesw
 +
<source lang=bash>
 +
php artisan migrate
 +
</source>
 +
;Para usar
  
El resultado sera una lista con los puertos que tienes abiertos, los protocolos que utilizan y los servicios que están corriendo en este momento.
+
*Para establecer routas protegidas (solo accesibles si logueado)
  
Para cerrar algún puerto solo es necesario ejecutar una linea como la siguiente en una terminal:  
+
Route::get("xx", function (){
 +
return view("xxxxxx");})->middelware("auth");
  
fuser -k 80/tcp
+
*Si en una vista quiero si estoy logueado
-->
+
 
+
===Concepto===
+
*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
+
*La idea es usar un milddeware, entendido como un software intermedio entre la página que solicito y la que el servidor me entrega
+
*Anteriormente este concepto se conocía como filtro, ahora en esta versión se conoce como  Middleware.
+
*La idea es antes de cargar una página que se verifica  ver si el usuario está autentificado
+
*La descripción algorítmica sería
+
1.- Si  está registrado  entrego la página solicitada
+
2.- Si no lo está le redirijo a una página de logueo para que se acredite o registre
+
2.-1 Cuando lo halga le doy paso a la página solicitada
+
3.- En caso de no autentificarles le doy una información de error.
+
*En Laravel todo está preparado para configurarlo a nuestras necesidades con pocas acciones
+
;fichero de configuración
+
  '''''/config/auth.php'''''
+
*Un listado de este fichero por defecto en la versión 5.2.32 (ver fichero en un proyecto para comentarios)
+
 
<source lang=php>
 
<source lang=php>
?php
+
  @auth
return array(
+
            <h2>Conectado como {{auth()->user()->name}}</h2>
 +
            <form action="{{route("logout")}}" method='post'>
 +
                @csrf
 +
                <x-button>Desconectar</x-button>
 +
            </form>
 +
        @endauth
 +
        @guest
 +
                <a href="{{route("login")}}"><x-button>Login</x-button></a>
 +
                <a href="{{route("register")}}"><x-button>Registrarme</x-button></a>
  
return [
+
        @endguest
//Autentificaciones por defecto
+
  
    'defaults' => [
+
</source>
        'guard' => 'web',
+
*Recordar las rutas creadas
        'passwords' => 'users',
+
routes/auth.php
    ],
+
*Para verlas
 +
php artisan route:list
 +
*Controladores creados
 +
http/controllers/auth
  
//Configuración de cada autentificación definida previamente
+
;Modificar la página a la que me redirige una vez logueado
    'guards' => [
+
Const HOME en Providers/RouteServiceProviders
        'web' => [
+
            'driver' => 'session',
+
            'provider' => 'users',
+
        ],
+
  
        'api' => [
 
            'driver' => 'token',
 
            'provider' => 'users',
 
        ],
 
    ],
 
  
//Almacenamiento de las credenciales para autentificarse
+
}}-->
    'providers' => [
+
        'users' => [
+
            'driver' => 'eloquent',
+
            'model' => App\User::class,
+
        ],
+
  
        // 'users' => [
 
        //    'driver' => 'database',
 
        //    'table' => 'users',
 
        // ],
 
    ],
 
//configuración para resetear la password
 
  
    'passwords' => [
 
        'users' => [
 
            'provider' => 'users',
 
            'email' => 'auth.emails.password',
 
            'table' => 'password_resets',
 
            'expire' => 60,
 
        ],
 
    ],
 
  
];
 
</source>
 
===Gestionar los datos de la autentificacion===
 
*Por defecto tenemos un modelo llamado '''''User''''' con su tabla por defecto '''''users'''''
 
*Esa tabla logicamente hay que construirla. Podemos hacerlo con migraciones.
 
Entre otros campos debe contener
 
*campo remenber_token de 100 caracteres, permitiendo el valor nulo. Campo usado para recordar entre sesiones
 
*Para incluir este campo con migraciones usaremos
 
<source lang=php>
 
$table->rememberToken()
 
</source>
 
*Para gestionar la validación Laravel incluye el modelo '''''app/User.php'''''
 
  
===Gestión de contraseñas===
+
 
;make crear una contraseña
+
 
Hash::make('secret');
+
===Conceptos generales===
;check validar una contraseña
+
*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.
Hash::check('secret',$hashedPassword);
+
*Laravel gestiona la autentificación en varios ficheros según vamos a ver a continuación.
;Tengo que volver a hacer el hash de una contraseña
+
*Laravel nos ofrece la autentificación como un servicio.
if (Hash::needsRehash($hashed))
+
*Laravel tiene preconfigurada la autentificación la cual la podemos activar de manera sencilla.
{
+
*Sistemas de authentificación posibles con laravel:
    $hashed = Hash::make('secret');
+
#Autentificación básica con http
}
+
#Breeze
 +
#Fortity
 +
#Jetstream
 +
#Sanctum
 +
#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
 +
 +
</div>
 +
-->

Última revisión de 17:14 21 mar 2023


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