php中的Google登录

时间:2019-07-08 09:34:24

标签: php curl guzzle

我正在尝试在我的项目中使用google登录。登录页面工作正常,但是当我尝试获取数据时,出现此错误。谢谢。

我正在wampserver上运行我的php代码。并且我正在Visual Studio上对页面进行编码。您可以看到我的代码。

//这是我的代码google_login.php

<?php 
    require_once('config.php');
    if (isset($_GET['code'])) 
    {
        $token = $gClient->fetchAccessTokenWithAuthCode($_GET['code']);
        $_SESSION['access_token'] = $token;
    }
    $oAuth = new Google_Service_Oauth2($gClient);
    $userData = $oAuth->userinfo_v2_me->get();
    echo "<pre>";
    var_dump($userData);
?>

//this is my config.php
<?php 
session_start();
require_once "GoogleAPI/vendor/autoload.php";
$gClient = new Google_Client();
$gClient->setClientId("1049012749051-01hv5pmer43duvcfa7q9872j1jtmp6bi.apps.googleusercontent.com");
$gClient->setClientSecret("LzTnjxrHg5Kl0h7z2MJ0-9Ru");
$gClient->setApplicationName("Anytime Learn");
$gClient->setRedirectUri("http://localhost/atl/google_login.php");
$gClient->addScope("https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email");
?>
  

(!)致命错误:未捕获的GuzzleHttp \ Exception \ RequestException:cURL   错误60:SSL证书问题:无法获取本地发行者   证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)   C:\ wamp64 \ www \ atl \ GoogleAPI \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php   在第187行(!)上GuzzleHttp \ Exception \ RequestException:cURL错误   60:SSL证书问题:无法获取本地颁发者证书   (请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)   C:\ wamp64 \ www \ atl \ GoogleAPI \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php   在第187行调用堆栈上

     

时间记忆功能位置1 0.0021 406776 {main}()... \ google_login.php:0

     

2 0.0174 424824 Google_Client-> fetchAccessTokenWithAuthCode(   )... \ google_login.php:5   3 0.0320 519024 Google \ Auth \ OAuth2-> fetchAuthToken(   )... \ Client.php:191   4 0.0334 597056 Google \ Auth \ HttpHandler \ Guzzle6HttpHandler-> __ invoke(   )... \ OAuth2.php:492 5 0.0334 597056 GuzzleHttp \ Client-> send(   )... \ Guzzle6HttpHandler.php:34   6 0.1267 636424 GuzzleHttp \ Promise \ RejectedPromise-> wait(   )... \ Client.php:106

1 个答案:

答案 0 :(得分:0)

返回似乎期望使用https网址,而不是http://localhost/atl/google_login.php。您必须在https上进行本地工作。

您需要下载卷曲识别的证书:https://curl.haxx.se/ca/cacert.pem

保存cert.pem文件并将其指向您的php.ini,您正在寻找CURLOPT_CAINFO