{"id":1523,"date":"2025-07-06T08:35:25","date_gmt":"2025-07-06T08:35:25","guid":{"rendered":"https:\/\/sailexhost.com\/blog\/?p=1523"},"modified":"2025-07-06T08:48:08","modified_gmt":"2025-07-06T08:48:08","slug":"how-to-add-google-recaptcha-to-a-laravel-signup-form","status":"publish","type":"post","link":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/","title":{"rendered":"How to Add Google reCAPTCHA to a Laravel Signup Form"},"content":{"rendered":"\n<p>Spam bots are a serious problem for modern websites \u2014 especially when it comes to user registration forms. If you\u2019re building a Laravel application and want to protect your forms from automated bots and spam submissions, <strong>integrating Google reCAPTCHA<\/strong> is one of the most effective methods.<\/p>\n\n\n\n<p>In this tutorial, I\u2019ll walk you through the <strong>complete process of integrating Google reCAPTCHA (v2) into your Laravel signup form<\/strong>, using the popular <code>anhskohbo\/no-captcha<\/code> package. This guide is beginner-friendly and suitable for Laravel 8, 9, 10, or 11.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What You\u2019ll Learn in This Guide<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What reCAPTCHA is and why it\u2019s important<\/li>\n\n\n\n<li>How to generate Google reCAPTCHA keys<\/li>\n\n\n\n<li>How to install the <code>anhskohbo\/no-captcha<\/code> Laravel package<\/li>\n\n\n\n<li>How to display the reCAPTCHA box on your signup page<\/li>\n\n\n\n<li>How to validate reCAPTCHA input on form submission<\/li>\n\n\n\n<li>How to troubleshoot issues related to PHP version or Composer setup<\/li>\n\n\n\n<li>Bonus: How to test your integration and customize error messages<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What Is Google reCAPTCHA?<\/h2>\n\n\n\n<p><strong><a href=\"https:\/\/www.google.com\/recaptcha\/admin\/\">Google reCAPTCHA<\/a><\/strong> is a free service that helps protect websites from spam and abuse by verifying that a user is a human and not a bot. It provides a CAPTCHA widget you can add to your forms \u2014 often in the form of a checkbox (\u201cI\u2019m not a robot\u201d) or an invisible background check (v3).<\/p>\n\n\n\n<p>reCAPTCHA helps:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prevent automated form submissions by bots<\/li>\n\n\n\n<li>Reduce fake registrations<\/li>\n\n\n\n<li>Improve your server\u2019s security and bandwidth usage<\/li>\n\n\n\n<li>Maintain trust in your user database<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<p>Before we begin, ensure that the following requirements are met:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>You have an existing <strong>Laravel project<\/strong>.<\/li>\n\n\n\n<li>PHP version is <strong><a href=\"https:\/\/sailexhost.com\/blog\/step-by-step-guide-to-change-the-php-version-in-cpanel\/\">8.2 or higher<\/a><\/strong>.<\/li>\n\n\n\n<li>Composer is installed and working.<\/li>\n\n\n\n<li>You have terminal\/SSH access to your Laravel project folder.<\/li>\n\n\n\n<li>You have basic knowledge of Laravel Blade, routes, and controllers.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-1024x510.png\" alt=\"\" class=\"wp-image-1526\" srcset=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-1024x510.png 1024w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-300x149.png 300w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-768x382.png 768w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-1536x764.png 1536w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-2048x1019.png 2048w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-400x199.png 400w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-800x398.png 800w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-832x414.png 832w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-1664x828.png 1664w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-1248x621.png 1248w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-2496x1242.png 2496w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081232-scaled.png 2560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\ud83d\udd11 Step 1: Get Google reCAPTCHA API Keys<br>You need a Site Key and a Secret Key to use reCAPTCHA. These keys are tied to your domain name.<\/p>\n\n\n\n<p>\ud83d\udc49 How to Get Your Keys:<br>Visit the official reCAPTCHA admin panel:<br>\ud83d\udc49 <a href=\"https:\/\/www.google.com\/recaptcha\/admin\">https:\/\/www.google.com\/recaptcha\/admin<\/a><\/p>\n\n\n\n<p>Click &#8220;Create&#8221; or &#8220;Add New Site&#8221;.<\/p>\n\n\n\n<p>Fill in the registration form:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-1024x506.png\" alt=\"\" class=\"wp-image-1528\" srcset=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-1024x506.png 1024w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-300x148.png 300w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-768x379.png 768w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-1536x758.png 1536w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-2048x1011.png 2048w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-400x198.png 400w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-800x395.png 800w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-832x411.png 832w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-1664x822.png 1664w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-1248x616.png 1248w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-2496x1232.png 2496w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-081733-scaled.png 2560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Label: A name to identify the site (e.g., \u201cMy Laravel Project\u201d).<\/p>\n\n\n\n<p>reCAPTCHA Type: Choose reCAPTCHA v2 &gt; \u201cI\u2019m not a robot\u201d Checkbox.<\/p>\n\n\n\n<p>Domains: Add your domain name (e.g., example.com).<\/p>\n\n\n\n<p>Accept Terms and click Submit.<\/p>\n\n\n\n<p>You\u2019ll now receive:<\/p>\n\n\n\n<p>A Site Key \u2014 used on the frontend to render the reCAPTCHA.<\/p>\n\n\n\n<p>A Secret Key \u2014 used on the backend to validate the user\u2019s response.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-1024x510.png\" alt=\"\" class=\"wp-image-1529\" srcset=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-1024x510.png 1024w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-300x150.png 300w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-768x383.png 768w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-1536x766.png 1536w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-2048x1021.png 2048w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-400x199.png 400w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-800x399.png 800w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-832x415.png 832w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-1664x829.png 1664w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-1248x622.png 1248w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-2496x1244.png 2496w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-082006-scaled.png 2560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Keep both of these keys safe \u2014 we\u2019ll need them soon.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Install the reCAPTCHA Package<\/h2>\n\n\n\n<p>Now, you\u2019ll add reCAPTCHA support to Laravel using a community-maintained package called <strong><code>anhskohbo\/no-captcha<\/code><\/strong>, which makes it simple to render and validate Google\u2019s reCAPTCHA.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-1024x510.png\" alt=\"\" class=\"wp-image-1530\" srcset=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-1024x510.png 1024w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-300x149.png 300w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-768x382.png 768w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-1536x765.png 1536w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-2048x1020.png 2048w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-400x199.png 400w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-800x398.png 800w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-832x414.png 832w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-1664x829.png 1664w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-1248x622.png 1248w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-2496x1243.png 2496w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-084029-scaled.png 2560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Go to your Laravel project via SSH:<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>cd ~\/public_html   # or wherever your Laravel project lives<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6CB6FF\">cd<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">~\/public_html<\/span><span style=\"color: #ADBAC7\">   <\/span><span style=\"color: #768390\"># or wherever your Laravel project lives<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Install the package using Composer:<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer require anhskohbo\/no-captcha<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">composer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">require<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">anhskohbo\/no-captcha<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>If you run into a PHP version error like:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Root composer.json requires php ^8.2 but your php version (8.1.32) does not satisfy that requirement.<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">Root<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">composer.json<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">requires<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">php<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">^8.2<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">but<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">your<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">php<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">version<\/span><span style=\"color: #ADBAC7\"> (8.1.32) does not satisfy that requirement.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u2026it means Composer is using the wrong PHP version.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fix PHP Version Mismatch (cPanel\/Shared Hosting)<\/h3>\n\n\n\n<p>If you&#8217;re on a server that defaults to PHP 8.1 but your Laravel project requires 8.2, use this command:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/opt\/cpanel\/ea-php82\/root\/usr\/bin\/php \/opt\/cpanel\/composer\/bin\/composer require anhskohbo\/no-captcha<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">\/opt\/cpanel\/ea-php82\/root\/usr\/bin\/php<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">\/opt\/cpanel\/composer\/bin\/composer<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">require<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">anhskohbo\/no-captcha<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>This explicitly tells Composer to use PHP 8.2, which resolves version conflicts.<\/p>\n\n\n\n<p>Once the package is installed successfully, you\u2019re ready to configure it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-1024x506.png\" alt=\"\" class=\"wp-image-1531\" srcset=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-1024x506.png 1024w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-300x148.png 300w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-768x380.png 768w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-1536x760.png 1536w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-2048x1013.png 2048w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-400x198.png 400w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-800x396.png 800w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-832x411.png 832w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-1664x823.png 1664w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-1248x617.png 1248w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-2496x1234.png 2496w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085609-scaled.png 2560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Configure API Keys in Laravel<\/h2>\n\n\n\n<p>Now that the package is installed, we need to configure your Laravel app to use your Site Key and Secret Key.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Add reCAPTCHA keys to your <code>.env<\/code> file:<\/h3>\n\n\n\n<p>Open <code><strong>.env<\/strong><\/code> in the root of your Laravel project and add:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>NOCAPTCHA_SITEKEY=your_site_key_here\nNOCAPTCHA_SECRET=your_secret_key_here<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">NOCAPTCHA_SITEKEY<\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #96D0FF\">your_site_key_here<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">NOCAPTCHA_SECRET<\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #96D0FF\">your_secret_key_here<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Replace <code><strong>your_site_key_here<\/strong><\/code> and <code><strong>your_secret_key_here<\/strong><\/code> with the real keys you got from Google.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-1024x506.png\" alt=\"\" class=\"wp-image-1532\" srcset=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-1024x506.png 1024w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-300x148.png 300w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-768x380.png 768w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-1536x760.png 1536w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-2048x1013.png 2048w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-400x198.png 400w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-800x396.png 800w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-832x411.png 832w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-1664x823.png 1664w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-1248x617.png 1248w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-2496x1234.png 2496w, https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-06-085959-scaled.png 2560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Update <code>config\/services.php<\/code><\/h3>\n\n\n\n<p>Open this config file:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>config\/services.php<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">config\/services.php<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Then add this array to it:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>'nocaptcha' => &#91;\n    'sitekey' => env('NOCAPTCHA_SITEKEY'),\n    'secret' => env('NOCAPTCHA_SECRET'),\n&#93;,<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">&#39;nocaptcha&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> &#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F69D50\">&#39;sitekey&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">env<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #F69D50\">&#39;NOCAPTCHA_SITEKEY&#39;<\/span><span style=\"color: #ADBAC7\">)<\/span><span style=\"color: #96D0FF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F69D50\">&#39;secret&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">env<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #F69D50\">&#39;NOCAPTCHA_SECRET&#39;<\/span><span style=\"color: #ADBAC7\">)<\/span><span style=\"color: #96D0FF\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">&#93;,<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Finally, clear your configuration cache:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>php artisan config:clear<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">php<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">artisan<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">config:clear<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Add reCAPTCHA to Your Signup Form<\/h2>\n\n\n\n<p>Now let\u2019s display the reCAPTCHA checkbox on your frontend form.<\/p>\n\n\n\n<p>Open your Blade file:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>resources\/views\/auth\/register.blade.php<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">resources\/views\/auth\/register.blade.php<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Then inside the <strong><code>&lt;form&gt;<\/code> <\/strong>(just above the submit button), add this:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>{!! NoCaptcha::renderJs() !!}\n{!! NoCaptcha::display() !!}\n\n@if ($errors->has('g-recaptcha-response'))\n    &lt;span class=\"text-danger\">\n        {{ $errors->first('g-recaptcha-response') }}\n    &lt;\/span>\n@endif<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">{<\/span><span style=\"color: #F47067\">!!<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #DCBDFB\">NoCaptcha::renderJs<\/span><span style=\"color: #ADBAC7\">() !!}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">{<\/span><span style=\"color: #F47067\">!!<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #DCBDFB\">NoCaptcha::display<\/span><span style=\"color: #ADBAC7\">() !!}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F69D50\">@if<\/span><span style=\"color: #ADBAC7\"> ($errors-&gt;has(<\/span><span style=\"color: #96D0FF\">&#39;g-recaptcha-response&#39;<\/span><span style=\"color: #ADBAC7\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">&lt;<\/span><span style=\"color: #F69D50\">span<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">class=&quot;text-danger&quot;<\/span><span style=\"color: #F47067\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        {{ $errors-&gt;first(&#39;g-recaptcha-response&#39;) }}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">&lt;<\/span><span style=\"color: #F69D50\">\/span&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F69D50\">@endif<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>This will:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Load the reCAPTCHA JavaScript<\/li>\n\n\n\n<li>Render the checkbox UI<\/li>\n\n\n\n<li>Show error messages if reCAPTCHA fails<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-style-plain is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-small-font-size\" style=\"border-radius:0px\">\ud83d\udca1 Want to customize the look and position? You can wrap the display in your own <code>&lt;div class=\"form-group\"><\/code>.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Validate reCAPTCHA on the Server<\/h2>\n\n\n\n<p>Next, we need to verify the user&#8217;s CAPTCHA response when the form is submitted.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Locate Your Form Handler<\/h3>\n\n\n\n<p>Depending on your Laravel setup, the form may be handled in one of the following:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\ud83d\udd39 Option A: RegisterController.php<\/h4>\n\n\n\n<p>File path:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>app\/Http\/Controllers\/Auth\/RegisterController.php<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">app\/Http\/Controllers\/Auth\/RegisterController.php<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Look for a function like this:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>public function register(Request $request)\n{\n    $request->validate(&#91;\n        'name' => 'required|string|max:255',\n        'email' => 'required|email|unique:users',\n        'password' => 'required|string|min:6|confirmed',\n        'g-recaptcha-response' => 'required|captcha',\n    &#93;);\n\n    \/\/ Continue to create the user\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">public<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">function<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">register<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #F69D50\">Request<\/span><span style=\"color: #ADBAC7\"> $request)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    $request-&gt;validate(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F69D50\">&#39;name&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;required|string|max:255&#39;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F69D50\">&#39;email&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;required|email|unique:users&#39;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F69D50\">&#39;password&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;required|string|min:6|confirmed&#39;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F69D50\">&#39;g-recaptcha-response&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;required|captcha&#39;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    &#93;);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F69D50\">\/\/<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">Continue<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">to<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">create<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">the<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">user<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Option B: Custom Form Request Class<\/h4>\n\n\n\n<p>Your validation rules might be in a class like:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>app\/Http\/Requests\/RegisterRequest.php<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">app\/Http\/Requests\/RegisterRequest.php<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Add the rule like so:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>public function rules()\n{\n    return &#91;\n        'name' => 'required|string|max:255',\n        'email' => 'required|email|unique:users',\n        'password' => 'required|string|min:6|confirmed',\n        'g-recaptcha-response' => 'required|captcha',\n    &#93;;\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">public<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">function<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">rules<\/span><span style=\"color: #ADBAC7\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">return<\/span><span style=\"color: #ADBAC7\"> &#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F69D50\">&#39;name&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;required|string|max:255&#39;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F69D50\">&#39;email&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;required|email|unique:users&#39;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F69D50\">&#39;password&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;required|string|min:6|confirmed&#39;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F69D50\">&#39;g-recaptcha-response&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;required|captcha&#39;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    &#93;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>This ensures that users cannot submit the form unless they pass the CAPTCHA.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Test Your Integration<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Do this to test properly:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to your signup page in a browser.<\/li>\n\n\n\n<li>Submit the form <strong>without clicking the reCAPTCHA checkbox<\/strong>.\n<ul class=\"wp-block-list\">\n<li>You should see an error like:<br><code>The g-recaptcha-response field is required.<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Now check the box and submit again.\n<ul class=\"wp-block-list\">\n<li>The user should be registered successfully.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Optional: Customize Error Messages<\/h2>\n\n\n\n<p>To improve the user experience, you can customize the CAPTCHA error message.<\/p>\n\n\n\n<p>Open:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>resources\/lang\/en\/validation.php<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">resources\/lang\/en\/validation.php<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Then add:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#22272e;font-style:italic;color:#adbac7\"><span style=\"border-bottom:1px solid rgba(139, 186, 234, 0.2)\">Bash<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>'captcha' => 'Please verify that you are not a robot.',<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F69D50\">&#39;captcha&#39;<\/span><span style=\"color: #ADBAC7\"> =<\/span><span style=\"color: #F47067\">&gt;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;Please verify that you are not a robot.&#39;,<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>This will replace the default validation message with a friendlier one.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Optional Cleanup Tips<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You can add CSS to style the reCAPTCHA widget container.<\/li>\n\n\n\n<li>If you prefer invisible reCAPTCHA (v3), the same package supports it \u2014 but you\u2019ll need to configure scoring.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Summary Checklist<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Task<\/th><th>Status<\/th><\/tr><\/thead><tbody><tr><td>Created Google reCAPTCHA keys <\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Installed <code>anhskohbo\/no-captcha<\/code> package <\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Added keys to <code>.env<\/code> and services config <\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Displayed reCAPTCHA on the registration form <\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Validated response on form submission <\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Tested integration <\/td><td>\u2714\ufe0f<\/td><\/tr><tr><td>Customized error messages (optional) <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Final Thoughts<\/h2>\n\n\n\n<p>Protecting your forms with reCAPTCHA is essential in modern web development. Laravel makes it easy thanks to packages like <code>anhskohbo\/no-captcha<\/code>, and with just a few steps, your app becomes more secure, more trustworthy, and more spam-resistant.<\/p>\n\n\n\n<p>Whether you&#8217;re building a blog, SaaS, eCommerce platform, or membership site \u2014 reCAPTCHA is a smart choice.<\/p>\n","protected":false},"excerpt":{"rendered":"Spam bots are a serious problem for modern websites \u2014 especially when it comes to user registration forms. If you\u2019re building a Laravel application and want to protect your forms from automated bots and spam submissions,","protected":false},"author":1,"featured_media":1525,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[17,8],"tags":[60,65,66,67,63,61,68,62,64,69],"class_list":{"0":"post-1523","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-seo-tips","8":"category-website-security","9":"tag-add-recaptcha-to-laravel-form","10":"tag-google-recaptcha-laravel-tutorial","11":"tag-how-to-prevent-spam-in-laravel-forms","12":"tag-laravel-11-recaptcha","13":"tag-laravel-no-captcha-package","14":"tag-laravel-recaptcha-integration","15":"tag-laravel-register-form-security","16":"tag-laravel-signup-bot-protection","17":"tag-recaptcha-v2-laravel-example","18":"tag-validate-captcha-laravel","19":"cs-entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Add Google reCAPTCHA to a Laravel Signup Form - sailexhost.com<\/title>\n<meta name=\"description\" content=\"Learn how to add Google reCAPTCHA to your Laravel signup form step-by-step. This complete guide covers installation, validation, setup, and styling to protect your Laravel application from spam and bots.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Add Google reCAPTCHA to a Laravel Signup Form - sailexhost.com\" \/>\n<meta property=\"og:description\" content=\"Learn how to add Google reCAPTCHA to your Laravel signup form step-by-step. This complete guide covers installation, validation, setup, and styling to protect your Laravel application from spam and bots.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/\" \/>\n<meta property=\"og:site_name\" content=\"sailexhost.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=100086330631833\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-06T08:35:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-06T08:48:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1640\" \/>\n\t<meta property=\"og:image:height\" content=\"924\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Smauel Eric\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sailexhost\" \/>\n<meta name=\"twitter:site\" content=\"@sailexhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Smauel Eric\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/\"},\"author\":{\"name\":\"Smauel Eric\",\"@id\":\"https:\/\/sailexhost.com\/blog\/#\/schema\/person\/512a81330709cc9c1c05e516459f48f5\"},\"headline\":\"How to Add Google reCAPTCHA to a Laravel Signup Form\",\"datePublished\":\"2025-07-06T08:35:25+00:00\",\"dateModified\":\"2025-07-06T08:48:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/\"},\"wordCount\":949,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg\",\"keywords\":[\"add reCAPTCHA to Laravel form\",\"Google reCAPTCHA Laravel tutorial\",\"how to prevent spam in Laravel forms\",\"Laravel 11 reCAPTCHA\",\"Laravel no-captcha package\",\"Laravel reCAPTCHA integration\",\"Laravel register form security\",\"Laravel signup bot protection\",\"reCAPTCHA v2 Laravel example\",\"validate captcha Laravel\"],\"articleSection\":[\"SEO Tips\",\"Website Security\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/\",\"url\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/\",\"name\":\"How to Add Google reCAPTCHA to a Laravel Signup Form - sailexhost.com\",\"isPartOf\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg\",\"datePublished\":\"2025-07-06T08:35:25+00:00\",\"dateModified\":\"2025-07-06T08:48:08+00:00\",\"description\":\"Learn how to add Google reCAPTCHA to your Laravel signup form step-by-step. This complete guide covers installation, validation, setup, and styling to protect your Laravel application from spam and bots.\",\"breadcrumb\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#primaryimage\",\"url\":\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg\",\"contentUrl\":\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg\",\"width\":1640,\"height\":924},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sailexhost.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Add Google reCAPTCHA to a Laravel Signup Form\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sailexhost.com\/blog\/#website\",\"url\":\"https:\/\/sailexhost.com\/blog\/\",\"name\":\"sailexhost.com\",\"description\":\"Sailexost Official Blog - Hosting Review, Deals, New Update\",\"publisher\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sailexhost.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sailexhost.com\/blog\/#organization\",\"name\":\"sailexhost.com\",\"url\":\"https:\/\/sailexhost.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sailexhost.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Sailexhost-1.png\",\"contentUrl\":\"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Sailexhost-1.png\",\"width\":500,\"height\":500,\"caption\":\"sailexhost.com\"},\"image\":{\"@id\":\"https:\/\/sailexhost.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/profile.php?id=100086330631833\",\"https:\/\/x.com\/sailexhost\",\"https:\/\/instagram.com\/@sailexhost\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/sailexhost.com\/blog\/#\/schema\/person\/512a81330709cc9c1c05e516459f48f5\",\"name\":\"Smauel Eric\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sailexhost.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/aaabb9db0b702789d913ac21ff9e642e2aff7131940a927281e1e80465a703a6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/aaabb9db0b702789d913ac21ff9e642e2aff7131940a927281e1e80465a703a6?s=96&d=mm&r=g\",\"caption\":\"Smauel Eric\"},\"sameAs\":[\"https:\/\/sailexhost.com\/blog\"],\"url\":\"https:\/\/sailexhost.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Add Google reCAPTCHA to a Laravel Signup Form - sailexhost.com","description":"Learn how to add Google reCAPTCHA to your Laravel signup form step-by-step. This complete guide covers installation, validation, setup, and styling to protect your Laravel application from spam and bots.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/","og_locale":"en_US","og_type":"article","og_title":"How to Add Google reCAPTCHA to a Laravel Signup Form - sailexhost.com","og_description":"Learn how to add Google reCAPTCHA to your Laravel signup form step-by-step. This complete guide covers installation, validation, setup, and styling to protect your Laravel application from spam and bots.","og_url":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/","og_site_name":"sailexhost.com","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=100086330631833","article_published_time":"2025-07-06T08:35:25+00:00","article_modified_time":"2025-07-06T08:48:08+00:00","og_image":[{"width":1640,"height":924,"url":"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg","type":"image\/jpeg"}],"author":"Smauel Eric","twitter_card":"summary_large_image","twitter_creator":"@sailexhost","twitter_site":"@sailexhost","twitter_misc":{"Written by":"Smauel Eric","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#article","isPartOf":{"@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/"},"author":{"name":"Smauel Eric","@id":"https:\/\/sailexhost.com\/blog\/#\/schema\/person\/512a81330709cc9c1c05e516459f48f5"},"headline":"How to Add Google reCAPTCHA to a Laravel Signup Form","datePublished":"2025-07-06T08:35:25+00:00","dateModified":"2025-07-06T08:48:08+00:00","mainEntityOfPage":{"@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/"},"wordCount":949,"commentCount":0,"publisher":{"@id":"https:\/\/sailexhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#primaryimage"},"thumbnailUrl":"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg","keywords":["add reCAPTCHA to Laravel form","Google reCAPTCHA Laravel tutorial","how to prevent spam in Laravel forms","Laravel 11 reCAPTCHA","Laravel no-captcha package","Laravel reCAPTCHA integration","Laravel register form security","Laravel signup bot protection","reCAPTCHA v2 Laravel example","validate captcha Laravel"],"articleSection":["SEO Tips","Website Security"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/","url":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/","name":"How to Add Google reCAPTCHA to a Laravel Signup Form - sailexhost.com","isPartOf":{"@id":"https:\/\/sailexhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#primaryimage"},"image":{"@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#primaryimage"},"thumbnailUrl":"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg","datePublished":"2025-07-06T08:35:25+00:00","dateModified":"2025-07-06T08:48:08+00:00","description":"Learn how to add Google reCAPTCHA to your Laravel signup form step-by-step. This complete guide covers installation, validation, setup, and styling to protect your Laravel application from spam and bots.","breadcrumb":{"@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#primaryimage","url":"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg","contentUrl":"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/How-to-Add-Google-reCAPTCHA-to-a-Laravel-Signup-Form.jpg","width":1640,"height":924},{"@type":"BreadcrumbList","@id":"https:\/\/sailexhost.com\/blog\/how-to-add-google-recaptcha-to-a-laravel-signup-form\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sailexhost.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Add Google reCAPTCHA to a Laravel Signup Form"}]},{"@type":"WebSite","@id":"https:\/\/sailexhost.com\/blog\/#website","url":"https:\/\/sailexhost.com\/blog\/","name":"sailexhost.com","description":"Sailexost Official Blog - Hosting Review, Deals, New Update","publisher":{"@id":"https:\/\/sailexhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sailexhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sailexhost.com\/blog\/#organization","name":"sailexhost.com","url":"https:\/\/sailexhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sailexhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Sailexhost-1.png","contentUrl":"https:\/\/sailexhost.com\/blog\/wp-content\/uploads\/2025\/07\/Sailexhost-1.png","width":500,"height":500,"caption":"sailexhost.com"},"image":{"@id":"https:\/\/sailexhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=100086330631833","https:\/\/x.com\/sailexhost","https:\/\/instagram.com\/@sailexhost"]},{"@type":"Person","@id":"https:\/\/sailexhost.com\/blog\/#\/schema\/person\/512a81330709cc9c1c05e516459f48f5","name":"Smauel Eric","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sailexhost.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/aaabb9db0b702789d913ac21ff9e642e2aff7131940a927281e1e80465a703a6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/aaabb9db0b702789d913ac21ff9e642e2aff7131940a927281e1e80465a703a6?s=96&d=mm&r=g","caption":"Smauel Eric"},"sameAs":["https:\/\/sailexhost.com\/blog"],"url":"https:\/\/sailexhost.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/posts\/1523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/comments?post=1523"}],"version-history":[{"count":1,"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/posts\/1523\/revisions"}],"predecessor-version":[{"id":1533,"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/posts\/1523\/revisions\/1533"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/media\/1525"}],"wp:attachment":[{"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/media?parent=1523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/categories?post=1523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sailexhost.com\/blog\/wp-json\/wp\/v2\/tags?post=1523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}