Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/autentificacion/fortifyWithInertia»
De WikiEducator
(→Referencias Web) |
|||
(2 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 32: | Línea 32: | ||
;Vistas | ;Vistas | ||
;Modelos (base de datos) | ;Modelos (base de datos) | ||
+ | ===Cómo personalizarlo=== | ||
+ | {{MRM_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=== | ===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
Contenido
Referencias Web
- Instalación básica (ver wikis anteriores)
https://jetstream.laravel.com/2.x/features/authentication.html https://laravel.com/docs/9.x/fortify |
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
Tip: Seleccionamos Inertia y opciones por defecto
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
|
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