PHPackages                             felipetti/captcha - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. felipetti/captcha

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

felipetti/captcha
=================

This package is for integrating captcha service to Laravel project

v3.0.0(1y ago)11.3k↓100%MITPHPPHP ^8.2

Since Nov 13Pushed 1y ago1 watchersCompare

[ Source](https://github.com/guille1988/captcha)[ Packagist](https://packagist.org/packages/felipetti/captcha)[ RSS](/packages/felipetti-captcha/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (12)Used By (0)

Installation and usage instructions:
====================================

[](#installation-and-usage-instructions)

What it does:
-------------

[](#what-it-does)

This package allows you to integrate Captcha V2 or V3 to your Laravel application.

Installation:
-------------

[](#installation)

```
composer require felipetti/captcha
```

Usage instructions:
-------------------

[](#usage-instructions)

First you publish config file:

```
php artisan vendor:publish --tag=captcha
```

Config file named captcha.php is published in config folder of root directory. Open the file and put the secret key provided by Google inside "secret\_key" field.

```
/*
    |--------------------------------------------------------------------------
    | Secret Key
    |--------------------------------------------------------------------------
    |
    | This is the Captcha key that only back-end has.
    |
    */

    'secret_key' => ''
```

There are three ways of captcha service integration, assuming $captcha is the field where front-end sends captcha response:

### Form request:

[](#form-request)

```
    use Felipetti\Captcha\Rule\CaptchaVerification;

    public function rules()
    {
        $captcha = ['required', 'string', new CaptchaVerification];

        return compact('captcha');
    }
```

### Request validation:

[](#request-validation)

Let's suppose we have a captcha controller, and we want to make validation inside:

```
use Felipetti\Captcha\Rule\CaptchaVerification;
use Illuminate\Http\Request;

class CaptchaController extends Controller
{
    public function __invoke(Request $request)
    {
        $request->validate(
            ['captcha' => [new CaptchaVerification]]
        );

        //...
    }
}
```

### Validator:

[](#validator)

```
use Felipetti\Captcha\Rule\CaptchaVerification;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;

class CaptchaController extends Controller
{
    public function __invoke(Request $request)
    {
        $rules  = ['captcha' => [new CaptchaVerification]];

        Validator::make($request->only('captcha'), $rules)->validate();

        //...
    }
}
```

Config:
-------

[](#config)

Explanations in config file are quite expressive, so if you have any questions, please email .

Comments:
---------

[](#comments)

Please star me if you liked the package, it will really help me a lot.

Security:
---------

[](#security)

If you discover any security-related issues, please e-mail me to the one above instead of using the issue tracker.

License:
--------

[](#license)

The MIT License (MIT).

###  Health Score

38

—

LowBetter than 84% of packages

Maintenance48

Moderate activity, may be stable

Popularity18

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~86 days

Total

11

Last Release

411d ago

Major Versions

v1.0.2 → v2.0.02024-04-08

v2.0.6 → v3.0.02025-03-23

PHP version history (2 changes)v1.0.0PHP ^8.1

v2.0.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/58360e0c63e45b0392c03f527aa3af59e7c531a96279edd8986995942793cf30?d=identicon)[guille1988](/maintainers/guille1988)

---

Top Contributors

[![guille1988](https://avatars.githubusercontent.com/u/62633191?v=4)](https://github.com/guille1988 "guille1988 (11 commits)")

### Embed Badge

![Health badge](/badges/felipetti-captcha/health.svg)

```
[![Health](https://phpackages.com/badges/felipetti-captcha/health.svg)](https://phpackages.com/packages/felipetti-captcha)
```

###  Alternatives

[lab404/laravel-impersonate

Laravel Impersonate is a plugin that allows to you to authenticate as your users.

2.3k16.4M48](/packages/lab404-laravel-impersonate)[santigarcor/laratrust

This package provides a flexible way to add Role-based Permissions to Laravel

2.3k5.4M42](/packages/santigarcor-laratrust)[pragmarx/google2fa-laravel

A One Time Password Authentication package, compatible with Google Authenticator.

1.0k15.5M63](/packages/pragmarx-google2fa-laravel)[overtrue/laravel-follow

User follow unfollow system for Laravel.

1.2k404.7k5](/packages/overtrue-laravel-follow)[codegreencreative/laravel-samlidp

Make your PHP Laravel application an Identification Provider using SAML 2.0. This package allows you to implement your own Identification Provider (idP) using the SAML 2.0 standard to be used with supporting SAML 2.0 Service Providers (SP).

263763.5k1](/packages/codegreencreative-laravel-samlidp)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
