{"id":28444,"date":"2021-05-26T09:51:00","date_gmt":"2021-05-26T06:51:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28444"},"modified":"2021-10-17T16:44:25","modified_gmt":"2021-10-17T13:44:25","slug":"como-agregar-no-soy-un-robot-captcha-en-laravel-forms","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/como-agregar-no-soy-un-robot-captcha-en-laravel-forms\/","title":{"rendered":"C\u00f3mo agregar No soy un robot captcha en Laravel Forms"},"content":{"rendered":"<p>\u00bfEst\u00e1 buscando agregar Google reCAPTCHA en sus formularios de Laravel? Google reCAPTCHA ayuda a proteger los formularios contra los bots que resultan para salvarnos de los spam. Si no est\u00e1 protegiendo sus formularios, probablemente est\u00e9 recibiendo un mont\u00f3n de spam en la base de datos.<\/p>\n<p>En el momento de redactar este art\u00edculo, Google proporciona 2 versiones de reCAPTCHA: v2 y v3. El reCAPTCHA v3 coloca un icono en la esquina inferior derecha de sus p\u00e1ginas y verifican las solicitudes con una puntuaci\u00f3n. Por otro lado, reCAPTCHA v2 verifica las solicitudes con un desaf\u00edo. En este art\u00edculo, estudiamos reCAPTCHA v2 y validaremos las solicitudes con la casilla de verificaci\u00f3n &quot;No soy un robot&quot;.<\/p>\n<h3>\u00bfPor qu\u00e9 necesita Google reCAPTCHA?<\/h3>\n<p>Un bot de Internet es un sistema que ejecuta scripts automatizados en Internet. Apuntan a los formularios del sitio web para enviar spam a la base de datos. B\u00e1sicamente, este sistema funciona a un ritmo mucho m\u00e1s alto que los humanos por s\u00ed solos. Siempre queremos que un humano real interact\u00fae con los formularios de nuestro sitio web, no un bot.<\/p>\n<p>Al agregar Google reCAPTCHA, podemos proteger los formularios de nuestro sitio web contra estos robots de Internet, sus spam y abusos. Es imposible que un sistema automatizado resuelva el desaf\u00edo establecido por reCAPTCHA. Y su formulario no se enviar\u00e1 hasta que se resuelva el desaf\u00edo. Un humano puede resolver f\u00e1cilmente estos desaf\u00edos y enviar un formulario.<\/p>\n<h3>Configure Google reCAPTCHA en su sitio web de Laravel<\/h3>\n<p>Para comenzar, primero debe registrar el sitio en <a href=\"https:\/\/www.google.com\/recaptcha\/admin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Google<\/a>. Elija la opci\u00f3n reCAPTCHA v2 y la casilla de verificaci\u00f3n \u00abNo soy un robot&quot; como se muestra en la captura de pantalla a continuaci\u00f3n.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20464-6081f5fd17f3f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20464-6081f5fd17f3f.png\" alt=\"C\u00f3mo agregar No soy un robot captcha en Laravel Forms\" ><\/a><\/p>\n<p>Al registrar el sitio, copie la clave del sitio y la clave secreta que necesitaremos en un momento.<\/p>\n<p>Tenemos que agregar reCAPTCHA en el proyecto Laravel. Para realizar la tarea, <a href=\"https:\/\/github.com\/anhskohbo\/no-captcha\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">usar\u00e9<\/a> la <a href=\"https:\/\/github.com\/anhskohbo\/no-captcha\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioteca anhskohbo \/ no-captcha<\/a>.<\/p>\n<p>Abra el s\u00edmbolo del sistema en el directorio ra\u00edz de su proyecto y ejecute el comando:<\/p>\n<pre><code>composer require anhskohbo\/no-captcha<\/code><\/pre>\n<p>Abra el archivo &#8216;config \/ app.php&#8217; y agregue la siguiente l\u00ednea a la matriz de &#8216;proveedores&#8217;.<\/p>\n<pre><code>AnhskohboNoCaptchaNoCaptchaServiceProvider::class,<\/code><\/pre>\n<p>Agregue un alias de clase a la matriz de alias:<\/p>\n<pre><code>'NoCaptcha' =&gt; AnhskohboNoCaptchaFacadesNoCaptcha::class,<\/code><\/pre>\n<p>Publique el archivo de configuraci\u00f3n usando el comando:<\/p>\n<pre><code>php artisan vendor:publish --provider=\"AnhskohboNoCaptchaNoCaptchaServiceProvider\"<\/code><\/pre>\n<p>A continuaci\u00f3n, abra el <code>.env<\/code>archivo y especifique las claves reCAPTCHA de la siguiente manera.<\/p>\n<pre><code>NOCAPTCHA_SECRET=secret-key\nNOCAPTCHA_SITEKEY=site-key<\/code><\/pre>\n<p>Aseg\u00farese de reemplazar los marcadores de posici\u00f3n secret-key, site-key con los valores reales.<\/p>\n<p>Borre la cach\u00e9 de configuraci\u00f3n ejecutando el siguiente comando.<\/p>\n<pre><code>php artisan config:clear <\/code><\/pre>\n<h3>Agregar Google reCAPTCHA al formulario en Laravel<\/h3>\n<p>En esta etapa, habr\u00e1 completado la configuraci\u00f3n b\u00e1sica requerida para reCAPTCHA. Ahora escribamos algo de c\u00f3digo y hag\u00e1moslo en acci\u00f3n.<\/p>\n<p>Abra su archivo de vista donde desea agregar la casilla de verificaci\u00f3n No soy un robot. En la parte superior del archivo blade, inicialice la fuente JS de la siguiente manera:<\/p>\n<pre><code>{!! NoCaptcha::renderJs() !!}<\/code><\/pre>\n<p>Agregue la siguiente declaraci\u00f3n de una sola l\u00ednea en el lugar donde desea mostrar la casilla de verificaci\u00f3n reCAPTCHA. El mejor lugar es antes del bot\u00f3n de enviar.<\/p>\n<pre><code>{!! NoCaptcha::display() !!}<\/code><\/pre>\n<p>Como ejemplo, creemos un formulario con pocos campos y agreguemos reCAPTCHA usando el c\u00f3digo siguiente.<\/p>\n<pre><code>{!! NoCaptcha::renderJs() !!}\n\u00a0\n@if ($errors-&gt;has('g-recaptcha-response'))\n\u00a0\u00a0\u00a0\u00a0&lt;span class=\"help-block\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;strong&gt;{{ $errors-&gt;first('g-recaptcha-response') }}&lt;\/strong&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/span&gt;\n@endif\n&lt;form action=\"{{ url('ROUTE_HERE') }}\" method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Name: &lt;input type=\"text\" name=\"fullname\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Email: &lt;input type=\"email\" name=\"email\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Message: &lt;textarea name=\"message\"&gt;&lt;\/textarea&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0{!! NoCaptcha::display() !!}\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;&lt;\/p&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Despu\u00e9s de agregar las l\u00edneas anteriores, ver\u00e1 que reCAPTCHA aparece como se muestra en la siguiente captura de pantalla.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20464-6081f5fd17f3f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20464-6081f5fd17f3f.png\" alt=\"C\u00f3mo agregar No soy un robot captcha en Laravel Forms\" ><\/a><\/p>\n<p>En el c\u00f3digo anterior, tambi\u00e9n agregu\u00e9 un c\u00f3digo que muestra un error si ocurre al validar un reCAPTCHA.<\/p>\n<p>Ahora, tenemos que validar el reCAPTCHA al enviar el formulario. Para lograr esto, <a href=\"https:\/\/laravel.com\/docs\/master\/validation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">usar\u00e9 Laravel Validator de la<\/a> siguiente manera.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse IlluminateSupportFacadesValidator;\n\u00a0\nclass ContactController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0public function store(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$messages = [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'g-recaptcha-response.required' =&gt; 'You must check the reCAPTCHA.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'g-recaptcha-response.captcha' =&gt; 'Captcha error! try again later or contact site admin.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$validator = Validator::make($request-&gt;all(), [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'g-recaptcha-response' =&gt; 'required|captcha'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0], $messages);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if ($validator-&gt;fails()) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect('ROUTE_HERE')\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;withErrors($validator)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;withInput();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ process the form\n\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0 \n}<\/code><\/pre>\n<p>Aqu\u00ed, he incluido la fachada &#8216;Validator&#8217; y validando un reCAPTCHA en el m\u00e9todo &#8216;store&#8217;. Si no se valida, arrojar\u00e1 un error.<\/p>\n<p>\u00a1Eso es! Ha agregado correctamente reCAPTCHA v2 con la casilla de verificaci\u00f3n No soy un robot al formulario de Laravel. Ahora, su formulario no se enviar\u00e1 hasta que el visitante resuelva el desaf\u00edo reCAPTCHA.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/sistema-de-registro-e-inicio-de-sesion-de-usuario-en-laravel\/\" title=\"Sistema de registro e inicio de sesi\u00f3n de usuario en Laravel\">Sistema de registro e inicio de sesi\u00f3n de usuario en Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/sistema-de-inicio-de-sesion-social-usando-laravel-socialite\/\" title=\"Sistema de inicio de sesi\u00f3n social usando Laravel Socialite\">Sistema de inicio de sesi\u00f3n social usando Laravel Socialite<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/integracion-de-authorize-net-payment-gateway-en-laravel\/\" title=\"Integraci\u00f3n de Authorize.Net Payment Gateway en Laravel\">Integraci\u00f3n de Authorize.Net Payment Gateway en 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>\u00bfQuieres implementar I&#8217;m not a robot captcha en tus Laravel Forms? En este art\u00edculo, le mostramos c\u00f3mo configurar y usar Google reCaptcha en Laravel.<\/p>\n","protected":false},"author":1,"featured_media":21671,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[495],"tags":[849],"class_list":["post-28444","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\/28444","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=28444"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28444\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21671"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=28444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=28444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=28444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}