✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cómo enviar un correo electrónico de activación en Laravel después del registro del usuario

426

Laravel viene con un flujo de autenticación cuando lo instalamos. Incluye inicio de sesión, registro, flujo de contraseña olvidada en el propio núcleo de Laravel. Con este flujo integrado, cuando el usuario se registra, obtiene acceso directo al sistema. Pero, ¿qué pasa si alguien quiere enviar un código de verificación por correo electrónico antes de permitir que un usuario use la aplicación? En este artículo, estudiamos cómo enviar un correo electrónico de activación en Laravel.

Vamos a enviar un correo electrónico de confirmación al usuario. Cuando un usuario hace clic en el enlace de verificación enviado en un correo electrónico, solo él podrá usar el sistema.

Empezando

Para comenzar, primero instalamos el paquete en nuestro proyecto Laravel. Abra la terminal en el directorio raíz de su proyecto y ejecute el comando:

composer require beyondcode/laravel-confirm-email

Este paquete que agrega verificación por correo electrónico a sus proyectos de Laravel.

Después de instalar el paquete, debemos ejecutar un comando para publicar la migración y el archivo de configuración.

php artisan vendor:publish --provider=BeyondCodeEmailConfirmationEmailConfirmationServiceProvider

En la userstabla, este paquete agrega dos columnas confirmed_aty confirmation_code. Ejecutemos el comando de migración para agregar estas columnas.

php artisan migrate

Configuración

Para enviar correo electrónico de activación que necesitamos para reemplazar AuthenticatesUsers, RegistersUsersy SendsPasswordResetEmailslos rasgos con los proporcionados por este paquete.

Primero abra los archivos a continuación en su editor y luego reemplazamos los rasgos uno por uno.

  • appHttpControllersAuthLoginController.php
  • appHttpControllersAuthRegisterController.php
  • appHttpControllersAuthForgotPasswordController.php

De los archivos anteriores reemplace las declaraciones

  • use IlluminateFoundationAuthAuthenticatesUsers;
  • use IlluminateFoundationAuthRegistersUsers;
  • use IlluminateFoundationAuthSendsPasswordResetEmails;

Con

  • use BeyondCodeEmailConfirmationTraitsAuthenticatesUsers;
  • use BeyondCodeEmailConfirmationTraitsRegistersUsers;
  • use BeyondCodeEmailConfirmationTraitsSendsPasswordResetEmails;

Como estamos enviando un enlace de verificación en un correo electrónico de activación, agregue las siguientes dos rutas en un routes/web.phparchivo.

Route::name('auth.resend_confirmation')->get('/register/confirm/resend', 'AuthRegisterController@resendConfirmation');
Route::name('auth.confirm')->get('/register/confirm/{confirmation_code}', 'AuthRegisterController@confirm');

Cuando un usuario hace clic en el enlace de verificación, este paquete agrega mensajes flash que contienen mensajes de error / información para los usuarios. Para mostrar este mensaje flash a los usuarios, agregue el siguiente código en el resourcesviewsauthlogin.blade.php.

.....
<div class="panel-body">
    @if (session('confirmation'))
        <div class="alert alert-info" role="alert">
            {!! session('confirmation') !!}
        </div>
    @endif
 
    @if ($errors->has('confirmation') > 0)         <div class="alert alert-danger" role="alert">
            {!! $errors->first('confirmation') !!}
        </div>
    @endif
.....

También necesitamos agregar el siguiente código en el resourcesviewsauthpasswordsemail.blade.php

.....
<div class="panel-body">
    @if ($errors->has('confirmation') > 0)         <div class="alert alert-danger" role="alert">
            {!! $errors->first('confirmation') !!}
        </div>
    @endif
.....

¡Eso es! Ahora, cuando un usuario se registre en su sitio web, recibirá un correo electrónico de activación para confirmar su cuenta. Comparta sus pensamientos en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More