Usuario:ManuelRomero/Laravel/autentificacion/Email
De WikiEducator
< Usuario:ManuelRomero | Laravel | autentificacion
Revisión a fecha de 23:34 4 ago 2022; ManuelRomero (Discusión | contribuciones)
|
Contenido
Introducción
- Instalación de un proyecto nuevo
laravel new auth-mail
Modelo
- Especificamos que el model autentificable ( user por defecto)implemente la interfaz Illuminate\Contracts\Auth\MustVerifyEmail contract:
//.... use Illuminate\Contracts\Auth\MustVerifyEmail; class User extends Authenticatable implements MustVerifyEmail //......
Data base
- Ejecutamos las migraciones por defecto,
- Primero preparamos previamente el entorno en el ficheor .env (Databaname, Server ....)
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=auth_mail DB_USERNAME=root DB_PASSWORD=xxxxxxx
- Ejecutamos migraciones por defecto
php artisan migrate
Routing
- Necesitamos especificar tres rutas:
- 1.-Enlace de verficación de correo
- En estar ruta se le muestra al usuario que debe e hacer un click en el enlace de verificación de correo que le aparecerá, entregándelo una vista
Route::get('/email/verify', function () { return view('auth.verify-email'); })->middleware('auth')->name('verification.notice');
- 2.-Manejador de solicitudes generadas
- Una ruta que nos valida con el id y el hash y nos envía a la ruta que deseemosanterior).
- Aquí se manejar la solicitud de verificación de correo cuando el usuario hace un click en la verificación de emial
use Illuminate\Foundation\Auth\EmailVerificationRequest; Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) { $request->fulfill(); return redirect('/home'); })->middleware(['auth', 'signed'])->name('verification.verify');
- 3.- Ruta de reenvío por si el usuario pierde el primer enlace
- En esta ruta se entregará una vista para que el usuario pueda actuar si pierde el enlacer de verificación
use Illuminate\Http\Request; Route::post('/email/verification-notification', function (Request $request) { $request->user()->sendEmailVerificationNotification(); return back()->with('message', 'Verification link sent!'); })->middleware(['auth', 'throttle:6,1'])->name('verification.send');