friendsofhyperf/recaptcha

The Google recaptcha component for Hyperf.

Maintainers

πŸ‘ huangdijia

Package info

github.com/friendsofhyperf/recaptcha

Issues

Documentation

pkg:composer/friendsofhyperf/recaptcha

Fund package maintenance!

huangdijia

hdj.me/sponsors

Statistics

Installs: 1 053

Dependents: 0

Suggesters: 0

Stars: 1

v3.2.0 2026-06-07 13:32 UTC

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 1b567ecbaebfe977f3903cdc6d45d119e348ef2d

  • huangdijia <huangdijia.woop@gmail.com>

recaptchagooglehyperfv3.2

This package is auto-updated.

Last update: 2026-06-17 01:06:59 UTC


README

δΈ­ζ–‡θ―΄ζ˜Ž

A Google ReCaptcha component for Hyperf.

Installation

composer require friendsofhyperf/recaptcha

Configuration

Publish config/autoload/recaptcha.php before using the middleware or validator:

php bin/hyperf.php vendor:publish friendsofhyperf/recaptcha

Set RECAPTCHA_SECRET_V2_KEY for reCAPTCHA v2 and RECAPTCHA_SECRET_V3_KEY for reCAPTCHA v3, or configure v2.secret_key and v3.secret_key in the published file. The default key selects the version used when no version is passed explicitly.

Usage

  • Define Middleware
namespace App\Middleware;

use FriendsOfHyperf\ReCaptcha\Middleware\ReCaptchaMiddleware;

class V3CaptchaMiddleware extends ReCaptchaMiddleware
{
 protected string $version = 'v3';
 protected string $action = 'register'; 
 protected float $score = 0.35; 
 protected string $hostname; 
}

class V2CaptchaMiddleware extends ReCaptchaMiddleware
{
 protected string $version = 'v2';
 protected string $action = 'register'; 
 protected float $score = 0.35; 
 protected string $hostname; 
}
  • Validator Usage
<?php

namespace App\Controller;

use Hyperf\Di\Annotation\Inject;
use Hyperf\HttpServer\Contract\RequestInterface;
use Hyperf\Validation\Contract\ValidatorFactoryInterface;

class IndexController
{
 #[Inject]
 protected ValidatorFactoryInterface $validationFactory;

 public function foo(RequestInterface $request)
 {
 $validator = $this->validationFactory->make(
 $request->all(),
 [
 'g-recaptcha' => 'required|recaptcha:register,0.34,hostname,v3',
 ],
 [
 'g-recaptcha.required' => 'g-recaptcha is required',
 'g-recaptcha.recaptcha' => 'Google ReCaptcha Verify Fails',
 ]
 );

 if ($validator->fails()){
 // Handle exception
 $errorMessage = $validator->errors()->first(); 
 }
 // Do something
 }
}