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 검증 설정이 있습니다!
Reference
이 문제에 관하여(Symfony에 ReCaptcha 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/victorprdh/adding-recaptha-to-symfony-2m60텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)