Comment utiliser un Google ReCaptcha dans Laravel

Le Google ReCaptcha est un outil de sécurité qui permet de vérifier si un utilisateur est un humain ou un robot. Il est particulièrement utile pour éviter les spam et les attaques automatisées sur un formulaire d’inscription ou de connexion. Dans cet article, nous verrons comment implémenter un Google ReCaptcha dans une application Laravel en utilisant le package anhskohbo/no-captcha.

Configuration

Pour utiliser Google ReCaptcha dans Laravel, vous devez d’abord installer le package anhskohbo/no-captcha en utilisant composer. Ouvrez votre terminal et tapez la commande suivante :

composer require anhskohbo/no-captcha

Une fois le package installé, vous devez configurer Laravel pour utiliser le recaptcha. Ajoutez les informations suivantes dans votre fichier .env :

.env
NOCAPTCHA_SECRET=secret-key
NOCAPTCHA_SITEKEY=site-key

Vous pouvez obtenir votre clé de site et votre clé secrète en vous inscrivant pour un compte recaptcha sur le site de Google.

Ajoutez le recaptcha dans le formulaire

Pour ajouter le recaptcha dans votre formulaire, vous devez utiliser la fonction renderJs et display fournie par le package. Voici un exemple d’utilisation dans un formulaire d’inscription :

form.blade.php
<form method="POST" action="/register">
    @csrf

    <label for="email">Email :</label>
    <input type="email" name="email" id="email">

    <label for="password">Mot de passe :</label>
    <input type="password" name="password" id="password">

    {!! NoCaptcha::renderJs() !!}
    {!! NoCaptcha::display() !!}

    <input type="submit" value="S'inscrire">
</form>

Valider le captcha côté serveur

Pour valider le recaptcha dans votre formulaire, vous devez ajouter une règle de validation dans votre contrôleur. Voici un exemple d’utilisation dans un contrôleur d’inscription :

RegisterController.php
public function register(Request $request)
{
    $validate = Validator::make(Input::all(), [
        'g-recaptcha-response' => 'required|captcha'
    ]);
    if($validate->fails()){
        return redirect()->back()->withErrors($validate);
    }
    // Création de l'utilisateur
    // ...
}

Ensuite, vérifiez les erreurs de captcha dans le formulaire:

form.blade.php
@if ($errors->has('g-recaptcha-response'))
    <span class="help-block">
        <strong>{{ $errors->first('g-recaptcha-response') }}</strong>
    </span>
@endif

Conclusion

Le Google ReCaptcha  est un outil efficace pour protéger votre application contre les spam et les attaques automatisées. En utilisant le package « anhskohbo/no-captcha » et en suivant les étapes décrites dans cet article, vous devriez être en mesure d’implémenter facilement un recaptcha dans une application Laravel. N’oubliez pas de tester votre implémentation pour vous assurer qu’elle fonctionne correctement.

Nouveau Tutoriel

Newsletter

Ne manquez jamais les nouveaux conseils, tutoriels et autres.

Pas de spam, jamais. Nous ne partagerons jamais votre adresse électronique et vous pouvez vous désabonner à tout moment.