尝试使用 Google OAuth 2.0 登录混合流时出错(Google_IO_Exception',消息为“HTTP 错误:无法连接:'0'”)

2023-12-23

我正在尝试使用服务器端混合流程实现“使用 G+ 登录”按钮,但我不断收到相同的错误:

Google_IO_Exception' with message 'HTTP Error: Unable to connect: '0'

我到处都看过,什么都试过了,但我无法修复它。 我正在使用 GitHub 上的最新版本的 Google PHP 客户端库(最后更新于 5 月 17 日)。 我检查了无数次我的 client_id 和 client_secret 是否正确。

这是我的代码:

set_include_path("C:\wamp\www\src" . PATH_SEPARATOR . get_include_path());

include_once '../config/config.php';
require_once 'Google/Client.php';
require_once 'Google/Service.php';
require_once 'Google/Service/Plus.php';



$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("https://www.googleapis.com/auth/plus.login");

if (isset($_REQUEST['storeToken'])) {
    if (isset($_POST['code'])) {
      $client->authenticate($_POST['code']); // ERROR
        $_SESSION['access_token'] = $client->getAccessToken();
        unset($_SESSION['logout']);
    }
}

我尝试了一个 cURL 请求code用户登录后获取的参数。

curl --data code=4%2F3dZSVbozE_Kd4Sdf85KHPln-wChQ.ojCViNnNCQcYYKs_1NgQtmXZbUwqjAI&grant_type=authorization_code&redirect_uri=postmessage&client_id=<my_client_id>&client_secret=<my_client_secret> https://accounts.google.com/o/oauth2/token

它工作完美,我明白了:

{
  "access_token" : "ya29.GwAwNLxa5vExHxoAAACkL-MxCUL7K6SlOLSs2DNWCBipZcpyYwcOohejabVBYg",
  "token_type" : "Bearer",
  "expires_in" : 3565,
  "id_token" : "<very_long_id_token>",
  "refresh_token" : "1/4Tj6y6yCQQFH2XzrLumNqMmurAr4Ik0pooF4nrhe1Zk"
}

我首先认为我的请求的某些参数是错误的,因为非常奇怪的是,即使参数错误(我尝试过),库也会不断返回相同的错误(Google_IO_Exception',消息为'HTTP错误:无法连接:'0')$client->authenticate('This is not a valid code');)或者如果对 google.accounts 的请求返回 uri_mismatch。这正常吗?

我希望有人可以提供帮助,因为我不知道该怎么办:/

非常感谢 !

PS:我正在使用 WAMP Server 2.4(PHP 版本 5.4.12)运行这些测试


另一篇帖子(与上面类似)引用了。 https://stackoverflow.com/questions/23699484/problems-with-the-google-api-php-simple-query-example/23787500#23787500

我最终通过更改以下 PHP.ini 设置解决了该问题:

  1. 我设置(通过取消注释)extension=php_openssl.dll - “https”URL 必需的;和
  2. 我设置了时区。谷歌对时间很挑剔,所以这可能会影响结果

我重新启动了 Apache,一切都很好!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试使用 Google OAuth 2.0 登录混合流时出错(Google_IO_Exception',消息为“HTTP 错误:无法连接:'0'”) 的相关文章

  • 如何以 Magento 方式实现库存过滤器?

    在我的 magento 网站上可以看到缺货的产品 我想要在分层导航中添加一个自定义过滤器 其中显示 排除缺货 当客户单击它时 应该隐藏缺货产品 默认情况下 我在 系统 gt 配置 gt 目录 gt 库存 下启用显示 显示缺货产品 即我希望客
  • PDO::commit() 成功或失败

    The PHP PDO 提交 http www php net manual en pdo commit php文档指出该方法成功时返回 TRUE 失败时返回 FALSE 这是指beginTransaction 和commit 之间的语句执
  • Smarty 3 或更早版本中有类似 Dwoo-s {with} 或 {loop} 的东西吗?

    Dwoo 模板引擎中的 with 和 loop 插件更改变量名称解析的默认上下文 如果在 Dwoo 中您提供模板 arr foo with arr foo arr foo with 有数据 array arr gt array foo gt
  • 如何将自定义类型数组传递给 Postgres 函数

    我有一个自定义类型 CREATE TYPE mytype as id uuid amount numeric 13 4 我想将它传递给具有以下签名的函数 CREATE FUNCTION myschema myfunction id uuid
  • 通过jquery传递搜索参数

    我有一个表单 如果用户输入搜索查询 其参数应通过 jquery 传递 并在获取结果后将结果加载到 div 容器中 由于我不太熟悉 jquery 我该怎么做 html currently the data is being displayed
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • $_POST、$_GET 和 $_REQUEST 之间有什么区别?

    我对这些超级全局变量有点困惑 POST GET and REQUEST 在 PHP 中 在 PHP 中哪些场景需要使用这些变量 这三个变量的主要区别是什么 POST是在使用 application x www form urlencoded
  • Facebook Graph API v3.1 开发人员访问令牌权限限制

    如您所知 Facebook 将其 API 升级到了 V3 1 现在正在慢慢地淘汰旧的 API 和应用程序 因此我们必须迁移到新的 API 他们做出了一些艰难的决定 这对垃圾邮件网站来说是好事 但对开发人员来说也很难 提醒 Graph API
  • Google API Oauth2:所有用户只有一个刷新令牌?

    我正在使用 OAuth2 身份验证 并且我有一个包含多个用户的 CMS 每个用户都有自己的配置文件 碰巧我们公司有一个 Google 帐户 可以访问多个 Analytics 帐户 对于使用 CMS 的每个用户 我使用不同的用户名连接到 Go
  • Opencart最低下单价不包括一类

    我正在使用 opencart 并成功为所有交易添加了最低订单价格 这是我使用的代码 div div div class warning Minimum 10 Euro to checkout div 现在我想从中排除一个类别 以便可以购买该
  • 如何在 PHP 数组中的另一个已知(通过键或指针)元素之后有效地插入元素?

    给定一个数组 a array abc 123 k1 gt v1 k2 gt v2 78 tt k3 gt v3 当其内部指针指向其元素之一时 如何在当前元素之后插入元素 如何在键已知元素 例如 k1 之后插入元素 表现护理 您可以通过使用拆
  • PHP mkdir() 和 fopen() 不起作用 - 权限问题? umask问题?

    以下 PHP 脚本无法创建目录 它也将无法创建文件 当目录已经存在时 ini set error reporting E ALL define ABSPATH SERVER DOCUMENT ROOT echo ABSPATH br br
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • Laravel 5.3:护照实现 - {“error”:“invalid_client”,“message”:“客户端身份验证失败”}

    我按照中提到的确切步骤进行操作Laracast Laravel 5 3 的新增功能 Laravel Passport https laracasts com series whats new in laravel 5 3 episodes
  • 如何使用 PHP 从 MySQL 检索特定值?

    好吧 我已经厌倦了 过去一周我花了大部分空闲时间试图解决这个问题 我知道 SQL 中的查询已更改 但我无法弄清楚 我能找到的所有其他帖子似乎都已经过时了 如果有人能帮助我 我将非常感激 我想做的就是使用手动输入数据库的唯一 密码 来检索行的
  • PHP 文件服务脚本:下载不可靠?

    这篇文章最初是关于 ServerFault 的一个问题 https serverfault com questions 131156 user receiving partial downloads https serverfault co
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 如何移动 Zend_Layout 的“视图”

    通常它会是这样的结构 application modules somemodule views scripts index index phtml 我如何将其移动到 application templates somemodule temp
  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt

随机推荐

  • 基于学说的自定义 symfony 路由

    我需要使用 symfony 2 进行动态路由 其中 将 slug 参数添加到 url 中并与数据库中的页面相关 每个页面都有一个自己的slug 其内容存储在数据库中 我读了这篇文章高级路由 http www symfony project
  • CouchDB 0.11主要新特性有哪些

    CouchDB 0 11 版本中有哪些值得学习的功能 有哪些资源可以了解这些新发展 Features 通过重写和虚拟主机规则提供良好的 URL 您可以串联或单独使用 意见可以参考any文档 ID 因此当您查询时include docs tr
  • 有没有一种简单的方法可以从 Windows Phone 中的 URI 获取查询字符串参数?

    我目前正在使用自定义 URI 方案来验证使用 OAuth 的用户 为此 我需要从查询字符串中获取某些参数的值 有没有一种简单的方法来获取这些信息 或者是我使用 REGEX 或其他字符串操作的唯一选择 我之前发现过对 ParseQuerySt
  • Apache Derby 嵌入式模式部署

    我有一个 Java 应用程序 它有一个嵌入式 Derby 数据库 尽管没有休眠 该应用程序使用以下属性 datasource driverClassName org apache derby jdbc EmbeddedDriver data
  • 为什么已经弹出的范围会影响后续范围中的 check-sat 时间?

    一般问题 我已经注意到好几次了push pop已经弹出的范围似乎会影响check sat在后续范围的需要 也就是说 假设一个程序具有多个 可能任意嵌套 push pop 作用域 每个作用域都包含一个 check sat 命令 此外 假设第二
  • 涉及闪亮地图生成的问题

    有朋友可以帮我解决以下问题 我在下面插入三个可执行代码 第一个使用生成一个地图sftnetworks包裹 显示两个地点之间的路线 在本例中 定义了生成地图的两个位置 from c df spec clust 1 c Longitude df
  • 如何指定要从私有 github 存储库中提取的 gem?

    我在 Github 上有一个我想使用的私有存储库 我将我的应用程序部署到 Heroku 如何指定私有存储库作为我的 gemfile 上的源 我想仅仅说这些是不够的 gem mygem git gt my github address 我发现
  • 如何在MySQL数据库中创建组合键

    我正在 mysql 服务器上工作 我在其中创建了一个名为 Question 的表 该表的列 属性是 课程 主题 年份 问题 我想创建一个由 课程 主题 年份 组成的主键 或复合键 即 对于特定的课程 科目 年份组合 只能有一个问题 只有一行
  • OpenGL布尔统一?

    我正在尝试将布尔值发送到 OpenGL glsl 着色器 目前我在着色器中有这个 uniform bool foo 我用它来设置它 glUniform1i glGetUniformLocation shader foo true 似乎没有一
  • 将 ReactiveSearch 与普通的 elasticsearch 结合使用

    我想将反应式搜索与我自己的普通 Elasticsearch 集群一起使用 虽然示例和文档描述了这应该是可能的 反应基 https opensource appbase io reactive manual getting started r
  • Pandas - 可以使用两种不同的聚合来聚合两列吗?

    我正在加载一个 csv 文件 其中包含以下列 日期 文本A 文本 数字 数字 我想按列分组 日期 textA 和 textB 但想将 sum 应用于 numberS 但将 min 应用于 number data pd read table
  • 使用 Fluent NHibernate 命名为“Order”的数据库列

    我发现我正在处理的旧数据库的一个表有一个名为 Order 的列 不幸的是我无法更改数据库结构 我的 Fluent NHibernate 课程看起来像 public class SiteMap AutoMap
  • 在 C++ 中是否有一种“正确”的方法来处理名称空间

    我感染了 Java C 和 AS3 我一直想以同样的方式使用 C 命名空间 但我一直读到它们的设计并没有真正考虑到这一点 有没有正确的方法来使用命名空间 例如 在由十几个库项目 比如图形 声音 数学等 和几个应用程序项目组成的代码库中 该怎
  • Linux内核与用户空间程序之间的通信

    我目前正在编写一个 Linux 内核模块 在实现与用户空间程序的通信时遇到问题 该内核模块需要接收用户空间程序发出的任务 并在完成后将结果发送回用户空间程序 当内核模块正在执行其工作时 用户空间程序应该被阻止 我认为内核 用户空间 IPC
  • 如何计算 0 到 360 之间的色调值的平均值和标准差?

    假设使用简单的 HSV 颜色模型获取 5 个色调样本 其值为 355 5 5 5 5 所有色调均为红色 并且就感知而言彼此 相邻 但简单平均值为 75 远离 0 或 360 接近黄绿色 计算这个平均值和相关标准差的更好方法是什么 简单的解决
  • iOS 和红外线

    是否可以使用 iOS iPhone 或 iPad 与红外设备 USB 红外 电视 手机等 通信 嗯 我知道这是可能的 因为 AppStore 中有很多远程 通用远程应用程序 我主要想知道如何 有什么限制和 要求 什么样的附加硬件 必需的 如
  • System.currentTimeMillis() 和 Date getTime() 之间的区别?

    我希望从对返回时间戳的函数的多次调用中获得微小的性能增益 该函数如下所示 public static long get now ms returns number of MILLISECONDS since epoch java util
  • 挂钩标准 Inno Setup 复选框

    我添加了一个用于选择任务的InputOptionWizardPage 这工作正常 但我想添加一些自定义功能 一个任务依赖于另一个任务 因此如果选中第二个复选框 则应选中第一个复选框并将其灰显 为此 我需要访问复选框的属性 我找到了使用完全自
  • 如何为使用 SCons 构建的程序内置 gprof 支持?

    问候 这是我的 SConstruct 文件 env Environment env Append CCFLAGS g pg env Program target program1 source program1 c 这也是编译的输出 sco
  • 尝试使用 Google OAuth 2.0 登录混合流时出错(Google_IO_Exception',消息为“HTTP 错误:无法连接:'0'”)

    我正在尝试使用服务器端混合流程实现 使用 G 登录 按钮 但我不断收到相同的错误 Google IO Exception with message HTTP Error Unable to connect 0 我到处都看过 什么都试过了 但