【问题标题】:Google Auth token expires and cant refresh with PHP API Auth client?Google Auth 令牌过期并且无法使用 PHP API Auth 客户端刷新?
【发布时间】:2014-09-21 11:12:26
【问题描述】:

我正在使用在Google PHP API library 找到的最新版本

在 iOS 上启动身份验证->获取代码->发送到服务器->获取令牌一切正常。但是我将用户的令牌本地存储在服务器上,以代表 iOS 客户端离线访问。

注意:$googleToken 也包含刷新令牌。

$client = new Google_Client();
$oauth2 = new Google_Service_Oauth2($client);
$client->setApplicationName('MyServer');
$client->setClientId($google_config["clientId"]);
$client->setClientSecret($google_config["clientSecret"]);
$client->setRedirectUri("");
$client->setDeveloperKey($google_config["developerKey"]);

$googleToken = getGoogleToken($user);  //locally stored google token for user
$client->setAccessToken($googleToken['token']);
$access_token = $client->getAccessToken();
StoreToken($access_token);

并再次存储 access_token。当它到期时,尽管我的呼叫开始失败:

"error" : "invalid_request", "error_description" : "客户必须 指定 client_id 或 client_assertion,而不是两者"

我已经尝试过setRefreshToken 和其他所有组合,但仍然无法正常工作。 我究竟做错了什么?我确实尝试将状态设置为离线,但不确定它是否重要,因为我将刷新令牌作为初始令牌的一部分。

【问题讨论】:

    标签: php oauth-2.0 google-oauth google-api-php-client


    【解决方案1】:

    哇..想通了。这实际上是我自己的问题。 $google_config 是在配置文件中定义的全局变量!我在函数中缺少global $google_config;!结果 client_id 和 secret_id 都丢失了 - 至少可以说错误消息是不正确的!

    【讨论】:

      猜你喜欢
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 2013-02-03
      • 2012-03-03
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多