YaSmartCaptcha

Защитите сайт от спама с Яндекс SmartCaptcha
Версия 1.0.1-pl
Дата выпуска 04.10.2024
Загрузки 89
Просмотры 1 576
Внимание, этот компонент требует версию PHP 5.6 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.6 !
Воспользуйтесь этим дополнением для защиты форм, созданных с использованием FormIt, от спама с помощью капчи от Яндекс.
Компонент совместим со сниппетами FormIt и Login.

Регистрация в Yandex Cloud
Перед началом работы ознакомьтесь с инструкцией и зарегистрируйтесь в сервисе:
https://yandex.cloud/ru/docs/smartcaptcha/quickstart

Для работы с капчей вам будет необходимо создать платежный аккаунт, для чего потребуется ввести данные банковской карты или зарегистрировать его на организацию.

После прохождения регистрации создайте свою первую капчу и вы получите 2 ключа (клиентский и серверный). У Яндекса хорошая и понятная документация, проблем быть не должно.

Настройка компонента
Перейдите в системные настройки, выберите пространство yasmartcaptcha, и пропишите оба ключа:
  • yasmartcaptcha_client_key — Клиентский ключ
  • yasmartcaptcha_server_key — Серверный ключ

Также вы можете поменять значение настройки yasmartcaptcha_send_user_ip, отвечающей за то, будет ли передаваться IP пользователя в Яндекс. По идее это может улучшить работу сервиса SmartCaptcha.

Добавление капчи в форму
Шаг 1. том месте, где вам нужно добавить капчу, добавьте некешированный вызов сниппета:
[[!YaSmartCaptcha]]

Данный сниппет подключит на страницу (перед закрывающимся body) скрипт
https://smartcaptcha.yandexcloud.net/captcha.js
и добавит html блок с капчей.

У сниппета единственный параметр tpl, имеющий значение по-умолчанию tpl.YaSmartCaptcha.

Шаг 2. Добавьте хук YaSmartCaptcha к FormIt, например:
[[!FormIt?
&hooks=`YaSmartCaptcha,email`
..
]]
Естественно, этот хук идет до других, например email.

Если проверка не будет пройдена, то хук установит 2 ошибки: smart-token и yasmartcaptcha.
Первая (smart-token) соответствует названию hidden поля, которое добавляет Яндекс SmartCaptcha в вашу форму.
Вторая (yasmartcaptcha) соответствует названию компонента и более понятна.

Можете использовать любой ключ для показа ошибки, они равнозначны.

Если все сделано правильно, то может быть 2 вида ошибки с текстами:
— Поставьте галочку «Я не робот»
— Проверка не пройдена, попробуйте еще раз.

1.0.1-pl

  • Added support for Login snippet (Formit and Login are now supported)

1.0.0-alpha

  • First release

Последние обсуждения в сообществе MODX.pro