谷歌登录php

Posted

技术标签:

【中文标题】谷歌登录php【英文标题】:Google login in php 【发布时间】:2019-11-17 19:11:49 【问题描述】:

我正在尝试在我的项目中使用 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 谷歌\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】:

看起来返回的是 https url,而不是 http://localhost/atl/google_login.php。您必须在 https 上进行本地工作。

需要下载curl认可的证书:https://curl.haxx.se/ca/cacert.pem

保存 cert.pem 文件并在你的 php.ini 中指向它,你正在寻找 CURLOPT_CAINFO

【讨论】:

以上是关于谷歌登录php的主要内容,如果未能解决你的问题,请参考以下文章

php 模拟 登录

php 怎么实现单点登录?

如何将谷歌登录集成到我的网站并收集用户详细信息?

有没有一种简单的方法可以将谷歌登录按钮添加到 HTML 文件?

尝试使用谷歌登录包登录谷歌 - Flutter

“登录谷歌” eclipse kepler 按钮无法打开谷歌登录窗口?