{"id":27541,"date":"2021-05-10T13:21:00","date_gmt":"2021-05-10T10:21:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27541"},"modified":"2021-10-17T17:18:06","modified_gmt":"2021-10-17T14:18:06","slug":"como-enviar-un-correo-electronico-de-activacion-en-laravel-despues-del-registro-del-usuario","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/como-enviar-un-correo-electronico-de-activacion-en-laravel-despues-del-registro-del-usuario\/","title":{"rendered":"C\u00f3mo enviar un correo electr\u00f3nico de activaci\u00f3n en Laravel despu\u00e9s del registro del usuario"},"content":{"rendered":"<p>Laravel viene con un flujo de autenticaci\u00f3n cuando lo instalamos. Incluye inicio de sesi\u00f3n, registro, flujo de contrase\u00f1a olvidada en el propio n\u00facleo de Laravel. Con este flujo integrado, cuando el usuario se registra, obtiene acceso directo al sistema. Pero, \u00bfqu\u00e9 pasa si alguien quiere enviar un c\u00f3digo de verificaci\u00f3n por correo electr\u00f3nico antes de permitir que un usuario use la aplicaci\u00f3n? En este art\u00edculo, estudiamos c\u00f3mo enviar un correo electr\u00f3nico de activaci\u00f3n en Laravel.<\/p>\n<p>Vamos a enviar un correo electr\u00f3nico de confirmaci\u00f3n al usuario. Cuando un usuario hace clic en el enlace de verificaci\u00f3n enviado en un correo electr\u00f3nico, solo \u00e9l podr\u00e1 usar el sistema.<\/p>\n<h3>Empezando<\/h3>\n<p>Para comenzar, primero instalamos el paquete en nuestro proyecto Laravel. Abra la terminal en el directorio ra\u00edz de su proyecto y ejecute el comando:<\/p>\n<pre><code>composer require beyondcode\/laravel-confirm-email<\/code><\/pre>\n<p>Este <a href=\"https:\/\/github.com\/beyondcode\/laravel-confirm-email\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">paquete<\/a> que agrega verificaci\u00f3n por correo electr\u00f3nico a sus proyectos de Laravel.<\/p>\n<p>Despu\u00e9s de instalar el paquete, debemos ejecutar un comando para publicar la migraci\u00f3n y el archivo de configuraci\u00f3n.<\/p>\n<pre><code>php artisan vendor:publish --provider=BeyondCodeEmailConfirmationEmailConfirmationServiceProvider<\/code><\/pre>\n<p>En la <code>users<\/code>tabla, este paquete agrega dos columnas <code>confirmed_at<\/code>y <code>confirmation_code<\/code>. Ejecutemos el comando de migraci\u00f3n para agregar estas columnas.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<h3>Configuraci\u00f3n<\/h3>\n<p>Para enviar correo electr\u00f3nico de activaci\u00f3n que necesitamos para reemplazar <code>AuthenticatesUsers<\/code>, <code>RegistersUsers<\/code>y <code>SendsPasswordResetEmails<\/code>los rasgos con los proporcionados por este paquete.<\/p>\n<p>Primero abra los archivos a continuaci\u00f3n en su editor y luego reemplazamos los rasgos uno por uno.<\/p>\n<ul>\n<li>appHttpControllersAuthLoginController.php<\/li>\n<li>appHttpControllersAuthRegisterController.php<\/li>\n<li>appHttpControllersAuthForgotPasswordController.php<\/li>\n<\/ul>\n<p>De los archivos anteriores reemplace las declaraciones<\/p>\n<ul>\n<li><code>use IlluminateFoundationAuthAuthenticatesUsers;<\/code><\/li>\n<li><code>use IlluminateFoundationAuthRegistersUsers;<\/code><\/li>\n<li><code>use IlluminateFoundationAuthSendsPasswordResetEmails;<\/code><\/li>\n<\/ul>\n<p>Con<\/p>\n<ul>\n<li><code>use BeyondCodeEmailConfirmationTraitsAuthenticatesUsers;<\/code><\/li>\n<li><code>use BeyondCodeEmailConfirmationTraitsRegistersUsers;<\/code><\/li>\n<li><code>use BeyondCodeEmailConfirmationTraitsSendsPasswordResetEmails;<\/code><\/li>\n<\/ul>\n<p>Como estamos enviando un enlace de verificaci\u00f3n en un correo electr\u00f3nico de activaci\u00f3n, agregue las siguientes dos rutas en un <code>routes\/web.php<\/code>archivo.<\/p>\n<pre><code>Route::name('auth.resend_confirmation')-&gt;get('\/register\/confirm\/resend', 'AuthRegisterController@resendConfirmation');\nRoute::name('auth.confirm')-&gt;get('\/register\/confirm\/{confirmation_code}', 'AuthRegisterController@confirm');<\/code><\/pre>\n<p>Cuando un usuario hace clic en el enlace de verificaci\u00f3n, este paquete agrega mensajes flash que contienen mensajes de error \/ informaci\u00f3n para los usuarios. Para mostrar este mensaje flash a los usuarios, agregue el siguiente c\u00f3digo en el <code>resourcesviewsauthlogin.blade.php<\/code>.<\/p>\n<pre><code>.....\n&lt;div class=\"panel-body\"&gt;\n\u00a0\u00a0\u00a0\u00a0@if (session('confirmation'))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-info\" role=\"alert\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{!! session('confirmation') !!}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0@endif\n\u00a0\n\u00a0\u00a0\u00a0\u00a0@if ($errors-&gt;has('confirmation') &gt; 0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-danger\" role=\"alert\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{!! $errors-&gt;first('confirmation') !!}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0@endif\n.....<\/code><\/pre>\n<p>Tambi\u00e9n necesitamos agregar el siguiente c\u00f3digo en el <code>resourcesviewsauthpasswordsemail.blade.php<\/code><\/p>\n<pre><code>.....\n&lt;div class=\"panel-body\"&gt;\n\u00a0\u00a0\u00a0\u00a0@if ($errors-&gt;has('confirmation') &gt; 0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"alert alert-danger\" role=\"alert\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{!! $errors-&gt;first('confirmation') !!}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0@endif\n.....<\/code><\/pre>\n<p>\u00a1Eso es! Ahora, cuando un usuario se registre en su sitio web, recibir\u00e1 un correo electr\u00f3nico de activaci\u00f3n para confirmar su cuenta. Comparta sus pensamientos en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-usar-laravel-passport-para-la-autenticacion-de-api-rest\/\" title=\"C\u00f3mo usar Laravel Passport para la autenticaci\u00f3n de API REST\">C\u00f3mo usar Laravel Passport para la autenticaci\u00f3n de API REST<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-cargar-un-archivo-a-s3-usando-el-sistema-de-archivos-laravel\/\" title=\"C\u00f3mo cargar un archivo a S3 usando el sistema de archivos Laravel\">C\u00f3mo cargar un archivo a S3 usando el sistema de archivos Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo, mostramos c\u00f3mo enviar un correo electr\u00f3nico de activaci\u00f3n en Laraver cuando el usuario se registra. De forma predeterminada, Laravel inici\u00f3 sesi\u00f3n autom\u00e1ticamente como usuario al registrarse<\/p>\n","protected":false},"author":1,"featured_media":22164,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[495],"tags":[849],"class_list":["post-27541","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27541"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27541\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/22164"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27541"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}