LaravelでreCAPTCHAを導入してみる(改定版)
2024.08.09 09:00
2024.08.09 10:00

以前「LaravelでreCAPTCHAを導入してみる」という記事を書きましたが、書き方が変わったので、改定版を作ってみました。
How to protect your Laravel forms with Google reCAPTCHA V3
まずはライブラリをインストール
composer require josiasmontag/laravel-recaptchav3
次に.envに以下を追記
RECAPTCHAV3_SITEKEY=サイトキー
RECAPTCHAV3_SECRET=シークレットキー
設定ファイルを書き出します。
php artisan vendor:publish --provider="Lunaweb\RecaptchaV3\Providers\RecaptchaV3ServiceProvider"
ヘッダに以下を追記。
{!! RecaptchaV3::initJs() !!}
フォームタグの直下に以下を追記。
{!! RecaptchaV3::field('contact') !!}
「contact」の部分は適宜変更します。サイト内の他のフォームと被ってなければOK。
次にバリデーションに追加。
'g-recaptcha-response' => 'required|recaptchav3:contact,0.5'
contactの部分は、fieldで指定した値を入れ、0.5は許容スコアを入れます。
次にメッセージを指定。
public function messages()
{
return [
...省略
'g-recaptcha-response.required' => '処理ができませんでした',
'g-recaptcha-response.recaptcha' => '処理ができませんでした.',
];
}
最後に項目名を指定。
public function attributes()
{
return [
...省略
'validation.recaptchav3' => '投稿スコア',
];
}
それぞれのメッセージはお好みで。
だいぶ変わりましたね。
今回は以上です!