Laravel 5.2 社交名媛 Facebook 登录 cURL 错误 60
Posted
技术标签:
【中文标题】Laravel 5.2 社交名媛 Facebook 登录 cURL 错误 60【英文标题】:Laravel 5.2 Socialite Facebook Login cURL error 60 【发布时间】:2016-10-18 14:09:36 【问题描述】:我在 CurlFactory.php 第 187 行收到错误 RequestException: cURL 错误 60:SSL 证书问题:尝试使用社交名流 facebook 登录时,无法获取本地颁发者证书(请参阅 curl.haxx.se/libcurl/c/libcurl-errors.html)。这是我遵循的教程http://blog.damirmiladinov.com/laravel/laravel-5.2-socialite-facebook-login.html#.V2K-ersrLIV。
这是我的控制器:
public function redirect()
return Socialite::driver('facebook')->redirect();
public function callback()
// when facebook call us a with token
$providerUser = \Socialite::driver('facebook')->user();
根据我的研究,我发现错误是由于 guzzlehttp/guzzle 的版本造成的。我尝试了这些链接中提供的解决方案,但它对我不起作用。 Laravel Socialite testing on localhost, SSL certificate issue? 和 https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate/replies/52954。请帮忙。
【问题讨论】:
【参考方案1】:对于那些仍然需要解决方案的人,这里就是。
$providerUser = \Socialite::driver('facebook')
->setHttpClient(new \GuzzleHttp\Client(['verify' => false]))
->user();
注意['verify' => false]
,这将禁用由 Socialite 使用的 Guzzle HTTP 客户端完成的 SSL 证书验证检查。将其作为设置导出到配置中也是一个好主意。
【讨论】:
setHttpClient()
将是对 Laravel Socialite 文档的一个很好的补充。【参考方案2】:
经过将近一个月的努力,我已经能够解决我的问题。
问题出在我的 xampp 目录中的 php 文件夹中缺少的 Cacert.pem
文件。
我从https://curl.haxx.se/ca/cacert.pem 下载了新的 carcet.pem 并将其保存为 carcet.pem.txt 在我的 xampp 目录内的 php 文件夹中。然后我在 php 文件夹中打开了 php.ini 文件并进行了更改
;curl.cainfo=
到
curl.cainfo="C:\xampp\php\cacert.pem.txt"
。 不要忘记 .txt 扩展名,也不要忘记重新启动您的 xampp。
这为我解决了问题。您还可以在此处Laravel 5 Socialite - cURL error 77: error setting certificate verify locations 阅读有关此错误的更多信息。这是我遵循的实现 Facebook Socialite 登录 http://blog.sarav.co/integrating-socialite-in-laravel-5-2/ 的教程的链接。希望这对某人有所帮助。
【讨论】:
【参考方案3】:我用 cacert.pem + php artisan generate:key
【讨论】:
以上是关于Laravel 5.2 社交名媛 Facebook 登录 cURL 错误 60的主要内容,如果未能解决你的问题,请参考以下文章