Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Captcha Laravel Package

captcha-com/captcha

Laravel/PHP client for captcha.com. Helps you integrate CAPTCHA solving/verification into your app with simple API calls, configuration support, and helper methods for common workflows like submitting challenges and retrieving results.

View on GitHub
Deep Wiki
Context7

Captcha Generator -- BotDetect PHP CAPTCHA Free composer package.

Frequently asked questions about Captcha
How do I integrate this CAPTCHA package into Laravel’s form validation?
Use the `Captcha::validate()` method in your validation rules or extend Laravel’s validator with a custom rule. For example, add `'captcha' => 'required|captcha'` to your FormRequest rules. The package also provides a `CaptchaMiddleware` for route-level protection, so you can guard sensitive endpoints like login or password resets effortlessly.
Does this package support Laravel’s middleware for CAPTCHA verification?
Yes, the package includes a `CaptchaMiddleware` that you can apply to routes or groups. For instance, use `Route::middleware(['captcha.verify'])->group(function () { ... });` to enforce CAPTCHA checks on specific endpoints. This integrates seamlessly with Laravel’s middleware pipeline.
What Laravel versions are officially supported by this CAPTCHA package?
The package is designed for Laravel 8.x and 9.x, leveraging modern features like dependency injection and service providers. Check the package’s `composer.json` for the exact version range, but it avoids deprecated Laravel 7.x components. Always test in a staging environment if using edge cases.
Can I use this CAPTCHA package with Laravel’s queue system for async processing?
Yes, the package supports queueable CAPTCHA generation. Dispatch a `botdetect:generate` job to offload CAPTCHA creation from the main request flow, improving performance for high-traffic applications. This is especially useful for login or checkout pages where latency matters.
How do I customize the CAPTCHA appearance (e.g., colors, fonts) to match my Laravel app’s theme?
The package allows theming via CSS and JavaScript configuration. You can override default styles by extending the `BotDetect` class or using the `Captcha::setTheme()` method. For example, pass a custom CSS file path during initialization to align with your Laravel app’s branding or compliance requirements like WCAG.
What’s the best way to store CAPTCHA tokens in Laravel—database or Redis?
For session-based CAPTCHAs, Redis is ideal due to its speed and TTL support, reducing database load. If you need persistence (e.g., for analytics), store tokens in a `captcha_tokens` table. The package supports both, but Redis is recommended for high-traffic apps to avoid bottlenecks.
Are there alternatives to this package if I want an open-source CAPTCHA solution for Laravel?
Yes, consider `hcaptcha/hcaptcha-laravel` for hCaptcha integration or `cloudflare/turnstile-laravel` for Cloudflare Turnstile. These are open-source and may reduce vendor lock-in risks. However, they rely on third-party services, whereas this package offers self-hosted CAPTCHA generation with more customization.
How do I handle CAPTCHA failures gracefully in Laravel (e.g., logging, retries)?
The package dispatches `CaptchaGenerated` and `CaptchaFailed` events, which you can listen to for analytics or logging. Use Laravel’s event system to track failures in Sentry or New Relic. For retries, implement a counter in the session or database to limit user attempts before showing a fallback (e.g., rate-limiting).
Does this CAPTCHA package work with Laravel’s Blade templates for frontend rendering?
Yes, the package includes a `@captcha` Blade directive to render CAPTCHAs directly in your views. For example, use `@captcha` in your form to generate an image-based CAPTCHA. You can also fetch CAPTCHAs dynamically via JavaScript for SPAs using the provided API endpoints.
What are the performance implications of using this CAPTCHA in production (e.g., latency, scalability)?
Image generation and distortion algorithms may introduce latency, especially under high traffic (e.g., 10K+ RPS). Mitigate this by offloading CAPTCHA generation to queues or using a CDN for static assets. Test under load and monitor response times, adjusting thresholds (e.g., `minScore`) to balance security and UX.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource