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

De WikiEducator
Saltar a: navegación, buscar
(Qué tenemos)
 
(Una revisión intermedia por el mismo usuario no mostrado)
Línea 41: Línea 41:
  
 
===Cómo interactúan y cómo personalizarlo===
 
===Cómo interactúan y cómo personalizarlo===
 +
*Creo una aplicación
 +
<source lang=bash>
 +
laravel new auth --jet
 +
</source>
 +
;Modificando la tabla donde vamos a guardar datos de logueo
 +
 +
1.- Creo la tabla donde quiero hacer el logueo
 +
<source lang=php>
 +
    Schema::create('alumnos', function (Blueprint $table) {
 +
            $table->id();
 +
            $table->string('name');
 +
            $table->string('email')->unique();
 +
            $table->timestamp('email_verified_at')->nullable();
 +
            $table->string('password');
 +
            $table->rememberToken();
 +
            $table->foreignId('current_team_id')->nullable();
 +
            $table->string('profile_photo_path', 2048)->nullable();
 +
            $table->timestamps();
 +
        });
 +
</source>
 +
*Creo dicho modelo que tiene que ser Authenticatable (lo mejor para probarlo, copiarlo del modelo user
 +
 +
 +
*Modifico en config/auth.php el modelo que vamos a utilizar para la autenticacion
 +
<source lang=php>
 +
'providers' => [
 +
        'users' => [
 +
            'driver' => 'eloquent',
 +
            'model' => App\Models\Alumno::class,
 +
        ],
 +
 +
</source>
 +
*Si quiero que al registrar se guarde sobre esta tabla, he de modificar app/Action/Fortity/CreateNewUser.php, creando la nueva tupla sobre el modelo especificado, en este caso Alumno, en lugar de User.
 +
 +
;Creamos el modelo sobre el que queremos hacer el logueo
 +
 +
 +
;Estableciendo el campo sobre el que queremos establecer la autenticación
 +
 +
;Escribiendo las vistas
 +
 +
;Redirigiendo una vez logueado o estableciendo mensaje de error
 +
 +
;Controlando los datos del model
 +
<source lang=php>
 +
 +
</source>

Última revisión de 08:03 12 nov 2022

Referencias Web

  • Instalación básica (ver wikis anteriores)




Icon inter.gif

Vídeo de aprendibles

  • Muy buena documentación explicado de forma clara y en castellano
https://aprendible.com/series/autenticacion/lecciones/laravel-ui-breeze-fortify-jetstream-sanctum-y-passport


  • Tengo un problema con redirect, aquí una posible solución



Pasos básicos

  • Instalamos
 laravel new auth-inertia --jet
Icon present.gif
Tip: Seleccionamos Inertia y opciones por defecto


Icon present.gif
Tip: El terminal queda ejecutando vite para el cliente, abrimos otro para el shell


  • Fortity, ya viene instalado junto con el paquete de jetstream, por lo que no hay que instalarlo de forma explícita. La información para la instalación de fortity https://laravel.com/docs/9.x/fortify
  • Actualizamos el fichero .env para la conexión a la base de datos
  • Ejecutamos las migraciones que ya vienen creadas en la instalación
 php artisan migrate

Qué tenemos

Controladores
Vistas
Modelos (base de datos)

Cómo personalizarlo

Icon objectives.jpg
Objetivo
  • Que autentifique con otra tabla que no se llame users, por ejemplo alumnos
  • Que autentifique con otro campo que no sea email, por ejemplo dni
  • Que utilice una vista personalizada


Cómo interactúan y cómo personalizarlo

  • Creo una aplicación
laravel new auth --jet
Modificando la tabla donde vamos a guardar datos de logueo

1.- Creo la tabla donde quiero hacer el logueo

    Schema::create('alumnos', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->foreignId('current_team_id')->nullable();
            $table->string('profile_photo_path', 2048)->nullable();
            $table->timestamps();
        });
  • Creo dicho modelo que tiene que ser Authenticatable (lo mejor para probarlo, copiarlo del modelo user


  • Modifico en config/auth.php el modelo que vamos a utilizar para la autenticacion
'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\Alumno::class,
        ],
  • Si quiero que al registrar se guarde sobre esta tabla, he de modificar app/Action/Fortity/CreateNewUser.php, creando la nueva tupla sobre el modelo especificado, en este caso Alumno, en lugar de User.
Creamos el modelo sobre el que queremos hacer el logueo


Estableciendo el campo sobre el que queremos establecer la autenticación
Escribiendo las vistas
Redirigiendo una vez logueado o estableciendo mensaje de error
Controlando los datos del model