PHPackages                             mews/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. [Security](/categories/security)
4. /
5. mews/captcha

ActivePackage[Security](/categories/security)

mews/captcha
============

Laravel 5/6/7/8/9/10/11/12 Captcha Package

3.4.7(7mo ago)2.6k5.5M↓28.7%465[135 issues](https://github.com/mewebstudio/captcha/issues)[2 PRs](https://github.com/mewebstudio/captcha/pulls)20MITPHPPHP ^7.2|^8.1|^8.2|^8.3

Since Jan 25Pushed 7mo ago58 watchersCompare

[ Source](https://github.com/mewebstudio/captcha)[ Packagist](https://packagist.org/packages/mews/captcha)[ Docs](https://github.com/mewebstudio/captcha)[ RSS](/packages/mews-captcha/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (8)Versions (59)Used By (20)

Captcha for Laravel 10/11/12
============================

[](#captcha-for-laravel-101112)

[![Build Status](https://camo.githubusercontent.com/059f66ef89e51b775dda5384be18537e707ef24cb8a469611b4d4d8bf1b09b7d/68747470733a2f2f7472617669732d63692e6f72672f6d6577656273747564696f2f636170746368612e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/mewebstudio/captcha) [![Scrutinizer Code Quality](https://camo.githubusercontent.com/fa85500631c0dba36a80e40bc3ea1ef174f1cdd632d08dd47930edb7a01af1e5/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d6577656273747564696f2f636170746368612f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/mewebstudio/captcha/?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/e3ecb233b8e0adfa95c856e5c0fcde7db78136a6fe1c17752e85f4f71b186932/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f636170746368612f762f737461626c652e737667)](https://packagist.org/packages/mews/captcha)[![Latest Unstable Version](https://camo.githubusercontent.com/f04f4956555fcebad8b051a77ccbff50abc65dfe3b2e71d89585d1b97a966f98/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f636170746368612f762f756e737461626c652e737667)](https://packagist.org/packages/mews/captcha)[![License](https://camo.githubusercontent.com/5f622a69c4b52e57bb82b9fbe114ca794524e302b15e37f1876f7c258b09a7c2/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f636170746368612f6c6963656e73652e737667)](https://packagist.org/packages/mews/captcha)[![Total Downloads](https://camo.githubusercontent.com/3c3d4e421265d3246f3e42eab65910abc6cb4eb2cb7b4c0ad6b0b124f0eda110/68747470733a2f2f706f7365722e707567782e6f72672f6d6577732f636170746368612f646f776e6c6f6164732e737667)](https://packagist.org/packages/mews/captcha)

A simple [Laravel 5/6/7/8/9/10/11/12](http://www.laravel.com/) service provider for including the [Captcha for Laravel](https://github.com/mewebstudio/captcha).

for Laravel 4 [Captcha for Laravel Laravel 4](https://github.com/mewebstudio/captcha/tree/master-l4)

for Laravel 5 to 12 [Captcha for Laravel Laravel 5 and Newer versions](https://github.com/mewebstudio/captcha/tree/master-l5-l9)

Preview
-------

[](#preview)

[![Preview](https://camo.githubusercontent.com/5796b984677c086025788097a4f9f89701595234cb98a23c7276c4ea5424c6ef/68747470733a2f2f696d6167652e6962622e636f2f6b5a784d4c6d2f696d6167652e706e67)](https://camo.githubusercontent.com/5796b984677c086025788097a4f9f89701595234cb98a23c7276c4ea5424c6ef/68747470733a2f2f696d6167652e6962622e636f2f6b5a784d4c6d2f696d6167652e706e67)

- [Captcha for Laravel 5/6/7/8/9/10/11/12](#captcha-for-laravel-5-6-7)
    - [Preview](#preview)
    - [Installation](#installation)
    - [Usage](#usage)
    - [Configuration](#configuration)
        - [Custom settings:](#custom-settings)
        - [Disable validation:](#disable-validation)
    - [Example Usage](#example-usage)
        - [Session Mode:](#session-mode)
        - [Stateless Mode:](#stateless-mode)
- [Return Image](#return-image)
- [Return URL](#return-url)
- [Return HTML](#return-html)
- [To use different configurations](#to-use-different-configurations)
    - [Links](#links)

Installation
------------

[](#installation)

The Captcha Service Provider can be installed via [Composer](http://getcomposer.org) by requiring the `mews/captcha` package and setting the `minimum-stability` to `dev` (required for Laravel 5) in your project's `composer.json`.

```
{
    "require": {
        "laravel/framework": "5.0.*",
        "mews/captcha": "~3.0"
    },
    "minimum-stability": "stable"
}
```

or

Require this package with composer:

```
composer require mews/captcha

```

Update your packages with `composer update` or install with `composer install`.

In Windows, you'll need to include the GD2 DLL `php_gd2.dll` in php.ini. And you also need include `php_fileinfo.dll` and `php_mbstring.dll` to fit the requirements of `mews/captcha`'s dependencies.

Usage
-----

[](#usage)

To use the Captcha Service Provider, you must register the provider when bootstrapping your Laravel application. There are essentially two ways to do this.

Find the `providers` key in `config/app.php` and register the Captcha Service Provider.

```
    'providers' => [
        // ...
        'Mews\Captcha\CaptchaServiceProvider',
    ]
```

for Laravel 5.1+

```
    'providers' => [
        // ...
        Mews\Captcha\CaptchaServiceProvider::class,
    ]
```

For Laravel 11+ you can add the provider to `bootstrap\providers.php`.

```
return [
    // ...
    Mews\Captcha\CaptchaServiceProvider::class
];
```

Find the `aliases` key in `config/app.php`.

```
    'aliases' => [
        // ...
        'Captcha' => 'Mews\Captcha\Facades\Captcha',
    ]
```

for Laravel 5.1+

```
    'aliases' => [
        // ...
        'Captcha' => Mews\Captcha\Facades\Captcha::class,
    ]
```

For Laravel 11+ : you do not need to add the alias, it will be added automatically.

Configuration
-------------

[](#configuration)

### Custom settings:

[](#custom-settings)

To use your own settings, publish config.

`$ php artisan vendor:publish --provider="Mews\Captcha\CaptchaServiceProvider"`

`config/captcha.php`

```
return [
    'default'   => [
        'length'    => 5,
        'width'     => 120,
        'height'    => 36,
        'quality'   => 90,
        'math'      => true,  //Enable Math Captcha
        'expire'    => 60,    //Captcha expiration
    ],
    // ...
];
```

### Images

[](#images)

To use your own custom images for a background, set 'bgImage' to true and change the 'bgsDirectory' setting to your directory you want the image(s) to be used.
If you just want to change the background color, then set 'bgImage' to false and the 'bgColor' will be applied.

### Disable validation:

[](#disable-validation)

To disable the captcha validation use `CAPTCHA_DISABLE` environment variable. e.g. **.env** config:

```
CAPTCHA_DISABLE=true
```

Example Usage
-------------

[](#example-usage)

### Session Mode:

[](#session-mode)

```
    // [your site path]/Http/routes.php
    Route::any('captcha-test', function() {
        if (request()->getMethod() == 'POST') {
            $rules = ['captcha' => 'required|captcha'];
            $validator = validator()->make(request()->all(), $rules);
            if ($validator->fails()) {
                echo 'Incorrect!';
            } else {
                echo 'Matched :)';
            }
        }

        $form = '';
        $form .= '';
        $form .= '' . captcha_img() . '';
        $form .= '';
        $form .= 'Check';
        $form .= '';
        return $form;
    });
```

Detailed Example in Laravel way view files

```
    //register.blade.php

         @error('captcha')
         {{ $message }} @enderror
```

controller files

```
        Validator::make($input, [
            'name' => ['required', 'string', 'max:255'],
            'email' => [
                'required',
                'string',
                'email',
                'max:255',
                Rule::unique(User::class),
            ],
            'password' => $this->passwordRules(),
            'captcha' => 'required|captcha'
        ])->validate();
```

### Stateless Mode:

[](#stateless-mode)

You get key and img from this url `http://localhost/captcha/api/math`and verify the captcha using this method:

```
    //key is the one that you got from json response
    // fix validator
    // $rules = ['captcha' => 'required|captcha_api:'. request('key')];
    $rules = ['captcha' => 'required|captcha_api:'. request('key') . ',math'];
    $validator = validator()->make(request()->all(), $rules);
    if ($validator->fails()) {
        return response()->json([
            'message' => 'invalid captcha',
        ]);

    } else {
        //do the job
    }
```

Return Image
============

[](#return-image)

```
captcha();
```

or

```
Captcha::create();
```

Return URL
==========

[](#return-url)

```
captcha_src();
```

or

```
Captcha::src('default');

```

Return HTML
===========

[](#return-html)

```
captcha_img();
```

or

```
Captcha::img();
```

To use different configurations
===============================

[](#to-use-different-configurations)

```
captcha_img('flat');

Captcha::img('inverse');
```

etc.

Based on [Intervention Image](https://github.com/Intervention/image)

^\_^

Links
-----

[](#links)

- [Intervention Image](https://github.com/Intervention/image)
- [L5 Captcha on Github](https://github.com/mewebstudio/captcha)
- [L5 Captcha on Packagist](https://packagist.org/packages/mews/captcha)
- [For L4 on Github](https://github.com/mewebstudio/captcha/tree/master-l4)
- [License](http://www.opensource.org/licenses/mit-license.php)
- [Laravel website](http://laravel.com)
- [Laravel Turkiye website](http://www.laravel.gen.tr)
- [mewebstudio](https://github.com/mewebstudio/captcha)

###  Health Score

73

—

ExcellentBetter than 100% of packages

Maintenance63

Regular maintenance activity

Popularity73

Solid adoption and visibility

Community52

Growing community involvement

Maturity92

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 59.9% 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 ~80 days

Recently: every ~99 days

Total

54

Last Release

220d ago

Major Versions

1.0.1 → 2.0.02015-04-12

1.0.2 → 2.2.02018-04-25

2.3.0 → 3.0.02019-09-05

PHP version history (6 changes)1.0.1PHP &gt;=5.3.0

2.0.0PHP &gt;=5.4

3.0.0PHP ^7.2

3.2.5PHP ^7.2|^8.0

3.3.1PHP ^7.2|^8.1

3.3.3PHP ^7.2|^8.1|^8.2|^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2125733?v=4)[MeWebStudio - Muharrem ERİN](/maintainers/mewebstudio)[@mewebstudio](https://github.com/mewebstudio)

---

Top Contributors

[![mewebstudio](https://avatars.githubusercontent.com/u/2125733?v=4)](https://github.com/mewebstudio "mewebstudio (160 commits)")[![mauris](https://avatars.githubusercontent.com/u/996939?v=4)](https://github.com/mauris "mauris (33 commits)")[![jcanchor](https://avatars.githubusercontent.com/u/16929759?v=4)](https://github.com/jcanchor "jcanchor (11 commits)")[![mwllgr](https://avatars.githubusercontent.com/u/25794895?v=4)](https://github.com/mwllgr "mwllgr (10 commits)")[![sineld](https://avatars.githubusercontent.com/u/445349?v=4)](https://github.com/sineld "sineld (7 commits)")[![saidbakr](https://avatars.githubusercontent.com/u/467554?v=4)](https://github.com/saidbakr "saidbakr (5 commits)")[![khalilst](https://avatars.githubusercontent.com/u/9103966?v=4)](https://github.com/khalilst "khalilst (3 commits)")[![Sergej-Tihonov](https://avatars.githubusercontent.com/u/15265981?v=4)](https://github.com/Sergej-Tihonov "Sergej-Tihonov (3 commits)")[![hutushen222](https://avatars.githubusercontent.com/u/352215?v=4)](https://github.com/hutushen222 "hutushen222 (3 commits)")[![jxlwqq](https://avatars.githubusercontent.com/u/2421068?v=4)](https://github.com/jxlwqq "jxlwqq (3 commits)")[![laravel-shift](https://avatars.githubusercontent.com/u/15991828?v=4)](https://github.com/laravel-shift "laravel-shift (3 commits)")[![teksite](https://avatars.githubusercontent.com/u/149485086?v=4)](https://github.com/teksite "teksite (2 commits)")[![ithsjeff](https://avatars.githubusercontent.com/u/160572359?v=4)](https://github.com/ithsjeff "ithsjeff (2 commits)")[![profkevinbrowne](https://avatars.githubusercontent.com/u/67722209?v=4)](https://github.com/profkevinbrowne "profkevinbrowne (2 commits)")[![jp7anderson](https://avatars.githubusercontent.com/u/9416588?v=4)](https://github.com/jp7anderson "jp7anderson (2 commits)")[![Assmay](https://avatars.githubusercontent.com/u/18699209?v=4)](https://github.com/Assmay "Assmay (2 commits)")[![farzinghanbari](https://avatars.githubusercontent.com/u/14145192?v=4)](https://github.com/farzinghanbari "farzinghanbari (2 commits)")[![masoodvahid](https://avatars.githubusercontent.com/u/15362786?v=4)](https://github.com/masoodvahid "masoodvahid (2 commits)")[![ycrao](https://avatars.githubusercontent.com/u/3280204?v=4)](https://github.com/ycrao "ycrao (1 commits)")[![eromoe](https://avatars.githubusercontent.com/u/3938751?v=4)](https://github.com/eromoe "eromoe (1 commits)")

---

Tags

captchalaravelphpsecuritycaptchalaravel5 Securitylaravel12 Captchalaravel12 Security

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)

PHPackages © 2026

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