Laravel 4의 경우 v1 분기를 사용하십시오.
composer require anhskohbo/no-captcha
참고 이 패키지는 Laravel 5.5 이상의 자동 검색 기능을 지원하므로 Laravel 5.5 이상을 사용하는 경우 이 Setup
지침을 건너뛰십시오.
app/config/app.php
에 다음을 추가합니다.
1- 공급자 배열에 대한 ServiceProvider :
AnhskohboNoCaptchaNoCaptchaServiceProvider::클래스,
2- 별칭 배열에 대한 클래스 별칭:
'NoCaptcha' => AnhskohboNoCaptchaFacadesNoCaptcha::class,
3- 구성 파일 게시
php artisan vendor:publish --provider="AnhskohboNoCaptchaNoCaptchaServiceProvider"
.env 파일에 NOCAPTCHA_SECRET
및 NOCAPTCHA_SITEKEY
추가합니다.
NOCAPTCHA_SECRET=secret-key NOCAPTCHA_SITEKEY=site-key
(여기에서 구할 수 있습니다)
기본 옵션 사용:
{!! NoCaptcha::renderJs() !!}
언어 지원 또는 onloadCallback 옵션 사용:
{!! NoCaptcha::renderJs('fr', true, 'recaptchaCallback') !!}
기본 위젯:
{!! NoCaptcha::display() !!}
사용자 정의 속성(테마, 크기, 콜백 ...) 사용:
{!! NoCaptcha::display(['data-theme' => '어두운']) !!}
제출 버튼을 사용하여 보이지 않는 reCAPTCHA:
{!! NoCaptcha::displaySubmit('my-form-id', '지금 제출하세요!', ['data-theme' => 'dark']) !!}
성공적인 보안 문자 확인 시 자동 생성된 콜백이 양식을 제출할 수 있도록 하려면 이 메서드에 양식의 ID가 필요합니다.
규칙 배열에 'g-recaptcha-response' => 'required|captcha'
추가합니다.
$validate = 유효성 검사기::make(Input::all(), [ 'g-recaptcha-response' => 'required|captcha']);
validation
언어 파일의 custom
배열에 다음 값을 추가합니다.
'custom' => ['g-recaptcha-response' => ['required' => '로봇이 아닌지 확인해주세요.','captcha' => '보안문자 오류입니다! 나중에 다시 시도하거나 사이트 관리자에게 문의하세요.', ], ],
그런 다음 Form
에서 보안 문자 오류를 확인하십시오.
@if ($errors->has('g-recaptcha-response')) <span class="help-block"> <strong>{{ $errors->first('g-recaptcha-response') }}</strong> </span> @endif
Laravel 테스트 기능을 사용할 때 보안 문자 양식 요소에 대한 응답을 모의해야 합니다.
따라서 보안 문자와 관련된 모든 양식 테스트의 경우 Facade 동작을 조롱하여 이를 수행할 수 있습니다.
// captchaNoCaptcha::shouldReceive('verifyResponse')의 유효성 검사 오류 방지 ->한번() ->andReturn(true);// '필수' 검증을 위해 숨겨진 입력 제공NoCaptcha::shouldReceive('display') ->zeroOrMoreTimes() ->andReturn('<input type="hidden" name="g-recaptcha-response" value="1" />');
그런 다음 양식의 나머지 부분을 정상적으로 테스트할 수 있습니다.
HTTP 테스트를 사용할 때 '필수' 유효성 검사를 위해 요청 본문에 g-recaptcha-response
추가할 수 있습니다.
// captchaNoCaptcha::shouldReceive('verifyResponse')의 유효성 검사 오류 방지 ->한번() ->andReturn(true);// g-recaptcha-response$response = $this->json('POST', '/register', ['g-recaptcha-response' => '를 포함한 요청 본문이 있는 POST 요청 1','이름' => 'John','email' => '[email protected]','password' => '123456','password_confirmation' => '123456', ]);
아래 결제 예시:
<?phprequire_once "vendor/autoload.php";$secret = 'CAPTCHA-SECRET';$sitekey = 'CAPTCHA-SITEKEY';$captcha = 새로운 AnhskohboNoCaptchaNoCaptcha($secret, $sitekey);if (! 비어 있음($_POST) ) {var_dump($captcha->verifyResponse($_POST['g-recaptcha-response']));exit(); }?><양식 작업="?" method="POST"><?php echo $captcha->display(); ?><button type="submit">제출</button> </form><?php echo $captcha->renderJs(); ?>
https://github.com/anhskohbo/no-captcha/pulls