سلام
در این بخش به این ارور بر می خورم
لطفا راهنمایی کنید.
GuzzleHttp\Exception\RequestException
cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://www.google.com/recaptcha/api/siteverify?secret=6LfA3OscAAAAAKN-uQPUzAu06XZdCZVJ9IWoZj3N&response=03AGdBq245cEPQOloy3rSF_Ks-u09H__S3_yoj7DTgLuGzhhmQwoizk1WwBhzc6MkOFZhS12qgYdCxo7FU2Xk3mHZvAcnGBwb23pbekl5JdIt3Nmy5J7sBANhswSyiolrwev8-jda0aOW6BfblwnUtpBeqDSkdj9wRh8vxmTF-HLOXQ0s_wlKRqWNTRPj93EdF3QBW-XcrMQShXd4W1TP7JSm_1caH72_34LkAu14Kh9tC8OcVndWohigEJ97ztdeIinZsIX1r1J1FY08J6VBWH_EGKzIRF_U8wJze0eHKHub52MiNetdXPgR2x4XPNYaaJuD2rzlU3Ira3brt4WwaXjABW6zHFwd5zbaPUDHtpzhr_fohBSmqFuoxrFsQkTAbojbYeqoHA9bxl-46VnSMoZel860DXbHITpeu00CnV5nMBh5F6pJu3a-vNJeG_yFSvWlGEbSP0aaQDV-jDVjpDB-7hKkTGDfBjeUOw68iVazgPYna5dhvg7w
http://127.0.0.1:8000/Auth/login
Recaptcha.php
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
use GuzzleHttp\Client;
class Recaptcha implements Rule
{
/**
* Create a new rule instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$client=new Client([
'base_uri'=>'https://www.google.com/recaptcha/api/'
]);
$response = $client->post('siteverify', [
'query' => [
'secret' => config('services.recaptcha.secret_key'),
'response' => $value
]
]);
dd(json_decode($response->getBody()));
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'The validation error message.';
}
}
قبل از هرچیزی بدونید که برای استفاده از کپچای گوگل در لوکال هاست باید این دامنه رو در داشبورد گوگل خودتون به عنوان یه آدرس قابل اعتماد تایید کنید و اگر اینکار رو انجام ندید خطاهای مختلفی دریافت میکنید چون دیگر مثل سابق این موضوع به شکل خودکار اتفاق نمیفته اگر تمام مقدمات رو درست انجام دادین یکی از روشهای زیر رو انجام بدین
این مشکل بخاطر استفاده نکردن از پروتکل امن SSL هست که خب چندین راه حل داره:
روش اول:
در پروژه لوکال خودتون از SSL استفاده کنید تا url پروژه با https شروع بشه و مشکل حل بشه
روش دوم:
زمانی که به صورت لوکال تست میکنید در guzzle تنظیمات چک کردن ssl رو به شکل زیر غیرفعال کنید و حتما حتما فقط در محیط توسعه چنین کاری کنید نه محیط پروداکشن
$client->request('POST', 'https://google.com', ['verify' => false]);
روش سوم: یک روش منطقیتر
فایل cacert.pem را دانلود کنید
https://curl.haxx.se/docs/caextract.html
این فایل را در مسیر نصب نرمافزار زمپ و فولدر ssl قرار دهید (مشابه مسیر زیر)
C:\xampp\php\extras\ssl\cacert.pem
در فایل php.ini خط زیر را قرار دهید
curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"
نرم افزار زمپ را ریستارت کنید و مشکل برطرف شده