Symfony에 ReCaptcha 추가

오늘날 ReCaptcha가 필요한 이유는 무엇입니까?



웹에 스팸을 보내는 이 모든 봇과 함께 귀하의 연락처 또는 가입 섹션을 보호하기 위해 recaptcha가 있습니다. 단계를 알면 거의 5분이면 설정이 매우 간단합니다. 이 튜토리얼에서는 최대 15분이라고 하겠습니다!

Google 콘솔에 가입



ReCaptcha를 웹사이트에 통합하려면 서비스를 사용할 수 있도록 Google에 토큰을 제공하도록 요청해야 합니다. 매우 간단하며 확인이 필요하지 않습니다. the ReCaptcha console로 이동하여 정보를 입력하십시오.



이 예에서 볼 수 있듯이 이름을 추가하고 ReCaptcha V2를 선택한 다음 내 도메인 이름을 추가했습니다. 작은 트릭도 추가했습니다localhost. 콘솔에 이 도메인을 추가하면 내 로컬 서버에서 테스트할 수 있습니다.

코딩 시간



이제 symfony 프로젝트로 이동합니다. 첫 번째 단계는 다음을 사용하여 recaptcha-bundle을 요구하는 것입니다.
composer require victor-prdh/recaptcha-bundle

심포니 플렉스 사용



symfony/flex를 사용하여 이 번들을 빠르게 구성할 수 있습니다.
  • google/recaptcha
  • 에 대해 아니요로 대답
  • victor-prdh/recaptcha-bundle
  • 에 대해 예라고 답하십시오.

    모든 것이 정상이면 구성 폴더("config/bundles.php")의 "bundles.php"파일에 번들이 등록되어 있어야 합니다.

    //config/bunldes.php
    <?php
    return [
        ...
        VictorPrdh\RecaptchaBundle\RecaptchaBundle::class => ['all' => true]
    ];
    


    이 줄이 보이지 않으면 추가하십시오.

    사용 섹션으로 바로 이동할 수 있습니다.

    심포니 플렉스 없이



    Flex 레시피를 원하지 않거나 사용할 수 없는 경우 구성 폴더("config/packages/recaptcha.yaml")에 "recaptcha.yaml"파일을 만들 수 있습니다.

    #config/packages/recaptcha.yaml
    recaptcha:
      google_site_key: '%env(GOOGLE_RECAPTCHA_SITE_KEY)%'
      google_secret_key: '%env(GOOGLE_RECAPTCHA_SECRET_KEY)%'
    


    이 구성 파일을 만든 후에 ".env"파일로 이동하여 다음을 추가할 수 있습니다.

    ###> victor-prdh/recaptcha ###
    # https://www.google.com/recaptcha/admin  <--- get keys here
    GOOGLE_RECAPTCHA_SITE_KEY='your site key'
    GOOGLE_RECAPTCHA_SECRET_KEY='your secret key'
    ###< victor-prdh/recaptcha ###
    


    번들을 업데이트할 시간입니다. 업데이트하지 않으면 번들에서 키를 사용하지 않습니다.
    composer update victor-prdh/recaptcha-bundle

    용법



    Symfony 형식의 통합



    이제 모든 양식에 사용할 수 있는 "ReCaptchaType"클래스가 있습니다. FormBuilder에서 "TextType"또는 "PasswordType"과 같이 사용할 수 있습니다.

    <?php
    
    namespace App\Form;
    
    use VictorPrdh\RecaptchaBundle\Form\ReCaptchaType;
    
    class TaskType extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder->add("recaptcha", ReCaptchaType::class);
        }
    }
    


    Twig 보기에 오류 표시



    양식을 생성하면 평소와 같이 Symfony에서 렌더링합니다. 다음과 같이 twig 파일에 표시할 수 있습니다.

    {{ form_start(form) }}
    
        {{ form_row(form.recaptcha) }} 
        {# must be the same name of this put on the FormBuilder #}
    
        {{ form_errors(form.recaptcha) }}
        {# That will display the error of the captcha to user #}
    
    {{ form_end(form) }}
    


    그리고 짜잔! symfony 프로젝트에 ReCapthca 검증 설정이 있습니다!

    좋은 웹페이지 즐겨찾기