40
common/Validation/RecaptchaController.php
Executable file
40
common/Validation/RecaptchaController.php
Executable file
@@ -0,0 +1,40 @@
|
||||
<?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]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user