【问题标题】:Error fetching OAuth2 access token, message: 'invalid_request获取 OAuth2 访问令牌时出错,消息:'invalid_request
【发布时间】:2013-08-29 06:27:57
【问题描述】:

我正在尝试使用 google plus api 来让第三方登录我的网站。

我使用类 Google_Client 方法 createAuthUrl 为用户登录生成 URI, 该页面将重定向到我的网站页面以完成授权, 但是当我使用 Google_Client.authenticate 方法检查结果时,出现以下错误,

获取 OAuth2 访问令牌时出错,消息:'invalid_request

那么,我怎样才能检查错误来自哪里?也许在会话中或某处

【问题讨论】:

标签: php google-plus


【解决方案1】:

我自己也遇到过这个问题。事实证明,我在客户端的构造中并不一致。确保您的重定向 uri 不包含返回的包含身份验证代码的查询字符串!

例如这将不起作用:

$client->setRedirectUri('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);

当用户从 Google 返回时,REQUEST_URI 会有所不同。

【讨论】:

  • +1 为我指明了正确的方向。在我的例子中,javascript 客户端使用 Google API (gapi) 使用 grantOfflineAccess 方法向服务器授予访问令牌。根据developers.google.com/identity/sign-in/web/… 的 Google 指南,如果没有为 google 应用程序定义重定向,则使用 json 参数 ({'redirect_uri': 'postmessage'}) 调用 grantOfflineAccess 方法。在这种情况下,服务器必须调用 $client->setRedirectURi('postmessage');在调用验证方法之前。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 2015-01-22
  • 2013-03-01
  • 1970-01-01
相关资源
最近更新 更多