Recaptcha для Yii2

Плагин, который действительно работает, Google reCAPTCHA для фреймворка Yii2 от himiklab. Подходит для reCAPTCHA v2 и reCAPTCHA v3.
Установка через Composer:
composer require --prefer-dist "himiklab/yii2-recaptcha-widget" "*"
Или в файл composer.json добавить:
"himiklab/yii2-recaptcha-widget" : "*"
Регистрируем reCAPTCHA API keys.
В файл config/main.php в массив components[ ] добавляем:
'reCaptcha' => [
'class' => 'himiklab\yii2\recaptcha\ReCaptchaConfig',
'siteKeyV2' => 'your siteKey v2',
'secretV2' => 'your secret key v2',
'siteKeyV3' => 'your siteKey v3',
'secretV3' => 'your secret key v3',
],
Регистрировать сразу reCAPTCHA v2 и reCAPTCHA v3 не нужно, просто определитесь, с какой версией будете работать, другие две строчки просто удалите.
Для валидирования, добавьте в вашу модель ReCaptchaValidator2 или ReCaptchaValidator3:
Yii2 reCAPTCHA v2:
public $reCaptcha;
public function rules()
{
return [
// ...
[['reCaptcha'], \himiklab\yii2\recaptcha\ReCaptchaValidator2::className(),
'uncheckedMessage' => 'Please confirm that you are not a bot.'],
];
}
Yii2 reCAPTCHA v3:
public $reCaptcha;
public function rules()
{
return [
// ...
[['reCaptcha'], \himiklab\yii2\recaptcha\ReCaptchaValidator3::className(),
'threshold' => 0.5,
'action' => 'homepage',
],
];
}
Использование reCAPTCHA в формах фреймворка Yii2:
Yii2 reCAPTCHA v2:
<?= $form->field($model, 'reCaptcha')->widget( \himiklab\yii2\recaptcha\ReCaptcha2::className(), [ 'siteKey' => 'your siteKey', // unnecessary is reCaptcha component was set up ] ) ?>
Yii2 reCAPTCHA v3:
<?= $form->field($model, 'reCaptcha')->widget( \himiklab\yii2\recaptcha\ReCaptcha3::className(), [ 'siteKey' => 'your siteKey', // unnecessary is reCaptcha component was set up 'action' => 'homepage', ] ) ?>
Демо