<?php namespace Common\Validation; use Common\Core\BaseController; use Common\Settings\Settings; use GuzzleHttp\Client; use Illuminate\Http\Request; class RecaptchaController extends BaseController { public function __construct( protected Request $request, protected Client $http, protected Settings $settings, ) { } public function verify() { $this->validate($this->request, [ 'token' => 'required|string', ]); $response = $this->http->post( 'https://www.google.com/recaptcha/api/siteverify', [ 'form_params' => [ 'response' => $this->request->get('token'), 'secret' => $this->settings->get('recaptcha.secret_key'), 'remoteip' => $this->request->getClientIp(), ], ], ); $response = json_decode($response->getBody()->getContents(), true); $success = $response['success'] && $response['score'] > 0.1; return $this->success(['success' => $success]); } }