Files
Epicnabbo-Catalogus-Updated…/Updated_Cms/app/Rules/GoogleRecaptchaRule.php
T
2026-01-07 19:32:43 +01:00

39 lines
1007 B
PHP

<?php
namespace App\Rules;
use Closure;
use GuzzleHttp\Client;
use Illuminate\Contracts\Validation\InvokableRule;
class GoogleRecaptchaRule implements InvokableRule
{
public function __invoke(string $attribute, mixed $value, Closure $fail)
{
// If recaptcha is disabled
if ((int) setting('google_recaptcha_enabled') === 0) {
return true;
}
$client = new Client;
$response = $client->request(
'POST', 'https://www.google.com/recaptcha/api/siteverify', [
'form_params' => [
'secret' => config('habbo.site.recaptcha_secret_key'),
'response' => $value,
'remoteip' => request()->ip(),
],
],
);
if ($response->getStatusCode() !== 200) {
$fail(__('The Google recaptcha was not successful.'));
}
$body = json_decode((string) $response->getBody());
return $body->success;
}
}