Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/autentificacion/Email»
De WikiEducator
(→Modelo) |
(→Routing) |
||
Línea 68: | Línea 68: | ||
return back()->with('message', 'Verification link sent!'); | return back()->with('message', 'Verification link sent!'); | ||
})->middleware(['auth', 'throttle:6,1'])->name('verification.send'); | })->middleware(['auth', 'throttle:6,1'])->name('verification.send'); | ||
+ | </source> | ||
+ | ===Configuración del servidor de correo=== | ||
+ | *Para que todo el sistema funcione, debemos tener configuerado en el web server un mail server. | ||
+ | *La configuración ha de estar establecida en el fichero de configueración '''.ENV''' | ||
+ | *Usando hestia, debemos mostrar los datos y copiarlos | ||
+ | |||
+ | <source lang=php> | ||
+ | AIL_MAILER=smtp | ||
+ | MAIL_HOST=localhost | ||
+ | MAIL_PORT=587 | ||
+ | MAIL_USERNAME=null | ||
+ | MAIL_PASSWORD=null | ||
+ | MAIL_ENCRYPTION=null | ||
+ | MAIL_FROM_ADDRESS="alumno1@manuel.infenlaces.com" | ||
+ | MAIL_FROM_NAME="${APP_NAME}" | ||
+ | |||
</source> | </source> |
Revisión de 23:38 4 ago 2022
|
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');
Configuración del servidor de correo
- Para que todo el sistema funcione, debemos tener configuerado en el web server un mail server.
- La configuración ha de estar establecida en el fichero de configueración .ENV
- Usando hestia, debemos mostrar los datos y copiarlos
AIL_MAILER=smtp MAIL_HOST=localhost MAIL_PORT=587 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="alumno1@manuel.infenlaces.com" MAIL_FROM_NAME="${APP_NAME}"