# A simple package to help integrate FriendlyCaptcha. [](https://packagist.org/packages/ossycodes/friendlycaptcha) [](https://packagist.org/packages/ossycodes/friendlycaptcha)  This package helps in setting up and validating FriendlyCaptcha widget and response in your Laravel applications ## Installation You can install the package via composer: ```bash composer require ossycodes/friendlycaptcha ``` ### Configuration Add `FRIENDLY_CAPTCHA_SECRET`, `FRIENDLY_CAPTCHA_SITEKEY` and optional `FRIENDLY_CAPTCHA_PUZZLE_ENDPOINT`, `FRIENDLY_CAPTCHA_VERIFY_ENDPOINT` in **.env** file : ``` FRIENDLY_CAPTCHA_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FRIENDLY_CAPTCHA_SITEKEY=XXXXXXXXXXXXXXXX FRIENDLY_CAPTCHA_PUZZLE_ENDPOINT=https://api.friendlycaptcha.com/api/v1/puzzle #optional FRIENDLY_CAPTCHA_VERIFY_ENDPOINT=https://api.friendlycaptcha.com/api/v1/siteverify #optional ``` You can obtain your site-key from [here](https://docs.friendlycaptcha.com/#/installation?id=_1-generating-a-sitekey) and secret from [here](https://apiserver-prod.friendlycaptcha.eu/dashboard/accounts/1118678876/apikeys) ## Usage For FriendlyCaptcha widget scripts from a CDN, add the Blade directive `@friendlyCaptchaRenderWidgetScripts` in your layout file. This should be added to the `
` of your document. ```blade @friendlyCaptchaRenderWidgetScripts() {{ $slot }} ``` or if you don't want to use the Blade directive you can do this instead ```php {!! FriendlyCaptcha::renderWidgetScripts() !!} ``` You have two options on how to add the script tag either from unpkg (default) or from jsdelivr `@friendlyCaptchaRenderWidgetScripts()` or `@friendlyCaptchaRenderWidgetScripts('jsdelivr')` `{!! FriendlyCaptcha::renderWidgetScripts() !!}` or `{!! FriendlyCaptcha::renderWidgetScripts('jsdelivr') !!}` You can also host the FriendlyCaptcha widget scripts yourself: ``` npm install --save friendly-challenge@0.9.9 ``` And import it in your app: ```js import "friendly-challenge/widget"; ``` Once that's done, you can call the `renderWidget()` method in ` ``` Finally On the server, use the provided validation rule to validate the CAPTCHA response. ```php use Illuminate\Validation\Rule; public function submit(Request $request) { $request->validate([ 'frc-captcha-solution' => ['required', Rule::friendlycaptcha()], ]); } ``` If you prefer to not use a macro, you can resolve an instance of the rule from the container via dependency injection or the `app()` helper. ```php use Ossycodes\FriendlyCaptcha\Rules\FriendlyCaptcha; public function submit(Request $request, FriendlyCaptcha $friendlyCaptcha) { $request->validate([ 'frc-captcha-solution' => ['required', $friendlyCaptcha], ]); } ``` ```php use Ossycodes\FriendlyCaptcha\Rules\FriendlyCaptcha; public function submit(Request $request) { $request->validate([ 'frc-captcha-solution' => ['required', app(FriendlyCaptcha::class)], ]); } ``` ### Testing ```bash composer test ``` ### Security If you discover any security related issues, please email osaigbovoemmanuel1@gmail.com instead of using the issue tracker. ## Credits - [Osaigbovo Emmanuel](https://github.com/ossycodes) - [Julian Dorn](https://github.com/wi-wissen) - [All Contributors](../../contributors) ## License The MIT License (MIT). Please see [License File](LICENSE.md) for more information. ## How do I say Thank you? Please buy me a cup of coffee https://www.paypal.com/paypalme/osaigbovoemmanuel , Leave a star and follow me on [Twitter](https://twitter.com/ossycodes) .