В Laravel , я настраиваю Google ReCaptcha V3 , который теперь возвращает «счет».Мне удалось настроить правило проверки, чтобы разрешить отправку формы (все работает), но это только возвращает значение true или false, чтобы пройти проверку.
Как вместо этого основать это на оценке?
Я использую этот пакет композитора, чтобы выручить меня - https://github.com/google/recaptcha
Это в моем контроллере (куда я отправляю токен для проверки с сервером):
// validation
$this->validate( $request, array(
'g_recaptcha_response' => ['required', 'string', new Captcha()]
));
Это правило:
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
use ReCaptcha\ReCaptcha;
class Captcha implements Rule
{
public function __construct()
{
//
}
public function passes($attribute, $value)
{
$recaptcha = new ReCaptcha('SECRET');
$response = $recaptcha->verify($value, $_SERVER['REMOTE_ADDR']);
return $response->isSuccess();
}
public function message()
{
return 'Are you a robot?';
}
}
Можно ли как-нибудь получить доступ к классу из контроллера?В пакете я вижу, что мне нужно использовать ->getScore()
, но я не знаю, как получить к нему доступ?