41 lines
1.1 KiB
PHP
Executable File
41 lines
1.1 KiB
PHP
Executable File
<?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]);
|
|
}
|
|
}
|