File "RecaptchaCredentialsValidator.php"
Full Path: /var/www/drive/foundation/src/Settings/Validators/RecaptchaCredentialsValidator.php
File size: 1.19 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Common\Settings\Validators;
use Exception;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Http;
class RecaptchaCredentialsValidator
{
const KEYS = ['recaptcha.site_key', 'recaptcha.secret_key'];
public function fails($settings): array|false
{
try {
$response = Http::asForm()->post(
'https://www.google.com/recaptcha/api/siteverify',
[
'response' => 'foo-bar',
'secret' => Arr::get($settings, 'recaptcha.secret_key'),
],
);
if (
$response['success'] === false &&
$response['error-codes'][0] !== 'invalid-input-response'
) {
return [
'recaptcha_group' =>
Arr::get($response, 'error-codes')[0] ??
__('These credentials are not valid'),
];
}
} catch (Exception $e) {
return $this->getErrorMessage($e);
}
return false;
}
private function getErrorMessage(Exception $e): array
{
return ['recaptcha_group' => $e->getMessage()];
}
}