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的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 社交名媛包错误

如何解决“Facebook 检测到 MyApp 未使用安全连接传输信息。” Laravel 中的错误

Laravel 5.2 Socialite 检索空电子邮件

在 laravel 中使用社交名流登录 Facebook

社交名流 laravel 5.4 Facebook 提供商

如何在 Laravel 5.1 中使用 Github、Facebook、Gmail 和 Twitter 登录?