Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ossycodes/friendlycaptcha
A simple package to help integrate FriendlyCaptcha.
https://github.com/ossycodes/friendlycaptcha
Last synced: 5 days ago
JSON representation
A simple package to help integrate FriendlyCaptcha.
- Host: GitHub
- URL: https://github.com/ossycodes/friendlycaptcha
- Owner: ossycodes
- License: mit
- Created: 2022-10-21T16:34:37.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-07-02T07:16:20.000Z (6 months ago)
- Last Synced: 2024-12-05T06:10:12.869Z (18 days ago)
- Language: PHP
- Size: 43.9 KB
- Stars: 21
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# A simple package to help integrate FriendlyCaptcha.
[![Latest Version on Packagist](https://img.shields.io/packagist/v/ossycodes/friendlycaptcha.svg?style=flat-square)](https://packagist.org/packages/ossycodes/friendlycaptcha)
[![Total Downloads](https://img.shields.io/packagist/dt/ossycodes/friendlycaptcha.svg?style=flat-square)](https://packagist.org/packages/ossycodes/friendlycaptcha)
![GitHub Actions](https://github.com/ossycodes/friendlycaptcha/actions/workflows/main.yml/badge.svg)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 [email protected]
```And import it in your app:
```js
import "friendly-challenge/widget";
```Once that's done, you can call the `renderWidget()` method in `` to output the appropriate markup (friendlycaptcha widget) with your site key configured.
```blade
{!! FriendlyCaptcha::renderWidget() !!}
or with custom theme
{!! FriendlyCaptcha::renderWidget(['dark-theme' => true]) !!}
or with custom language
{!! FriendlyCaptcha::renderWidget(['data-lang' => 'en']) !!}
Submit
```
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 [email protected] 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) .