Подключить reCAPTCHA#
Политика v2 с флажком реагирует на проверочный ответ. Политика v3 получает токен для указанного действия до исходного запроса.
# examples/docs/integration_recaptcha.py
checkbox = recaptcha.v2_checkbox(scope=operation("login"))
action = recaptcha.v3_action(
scope=operation("createAccount"),
site_key="public-site-key",
action="create_account",
)
Файл целиком
"""Construct Google reCAPTCHA protection presets."""
from __future__ import annotations
from eazy_sdk.protection import operation
from eazy_sdk_presets import recaptcha
def main() -> None:
# docs:integration-recaptcha:start
# examples/docs/integration_recaptcha.py
checkbox = recaptcha.v2_checkbox(scope=operation("login"))
action = recaptcha.v3_action(
scope=operation("createAccount"),
site_key="public-site-key",
action="create_account",
)
# docs:integration-recaptcha:end
print(f"protections: {checkbox.id}, {action.id}")
if __name__ == "__main__":
main()
protections: recaptcha.v2-checkbox, recaptcha.v3-action:create_account
operation(...) ограничивает политику одной операцией SDK. Решатель возвращает типизированный
токен и не изменяет запрос или состояние повторов. Способ применения, например
form_field("g-recaptcha-response"), добавляет закрытое поле перед кодированием и подписью.
Если описание не содержит решателя, привяжите его через механизм внедрения зависимостей до выполнения запроса. Иначе предварительная проверка конфигурации вернёт типизированную ошибку.