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 :
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 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 :
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:
@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.