PHP - Google Recaptcha 代理设置
PHP - Google Recaptcha proxy setup
我正在为 Google Recaptcha 使用 PHP 包装器库。
https://packagist.org/packages/google/recaptcha
我需要设置代理,但据我调查,该库不支持代理配置。
有没有人有机会为 Google Recaptcha 成功配置代理配置?
这是在没有代理的服务器上正常工作的代码
/**
* RecaptchaService constructor.
*
* @param ReCaptcha $recaptcha
*/
public function __construct(ReCaptcha $recaptcha)
{
$this->recaptcha = $recaptcha;
}
/**
* @param array $data
*
* @return bool
*/
public function validateCaptcha(array $data): bool
{
$response = $this->recaptcha->verify($data['gRecaptchaResponse'], $data['clientIp']);
return $response->isSuccess() || \PHP_SAPI === 'cli';
}
我想应该在 verify
方法调用之前或之内配置代理。
有一个 Google ReCaptcha 库的分支,支持代理
https://github.com/toskadv/recaptcha
$curl = new ReCaptcha\RequestMethod\CurlPost(null, null, [
CURLOPT_PROXY => 'http://127.0.0.1:9050/',
CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5
]);
$recaptcha = new \ReCaptcha\ReCaptcha($secret, $curl);
$resp = $recaptcha->verify($gRecaptchaResponse, $remoteIp);
if ($resp->isSuccess()) {
// verified!
} else {
$errors = $resp->getErrorCodes();
}
我正在为 Google Recaptcha 使用 PHP 包装器库。
https://packagist.org/packages/google/recaptcha
我需要设置代理,但据我调查,该库不支持代理配置。
有没有人有机会为 Google Recaptcha 成功配置代理配置?
这是在没有代理的服务器上正常工作的代码
/**
* RecaptchaService constructor.
*
* @param ReCaptcha $recaptcha
*/
public function __construct(ReCaptcha $recaptcha)
{
$this->recaptcha = $recaptcha;
}
/**
* @param array $data
*
* @return bool
*/
public function validateCaptcha(array $data): bool
{
$response = $this->recaptcha->verify($data['gRecaptchaResponse'], $data['clientIp']);
return $response->isSuccess() || \PHP_SAPI === 'cli';
}
我想应该在 verify
方法调用之前或之内配置代理。
有一个 Google ReCaptcha 库的分支,支持代理
https://github.com/toskadv/recaptcha
$curl = new ReCaptcha\RequestMethod\CurlPost(null, null, [
CURLOPT_PROXY => 'http://127.0.0.1:9050/',
CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5
]);
$recaptcha = new \ReCaptcha\ReCaptcha($secret, $curl);
$resp = $recaptcha->verify($gRecaptchaResponse, $remoteIp);
if ($resp->isSuccess()) {
// verified!
} else {
$errors = $resp->getErrorCodes();
}