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