'令牌使用太晚,{numbers}> {}的数字:

时间:2014-09-10 10:37:07

标签: google-drive-api google-oauth

使用Google Oauth,我收到了此错误:

  

未捕获的例外' Google_Auth_Exception'消息'令牌使用太晚,1410345101> 1410341783:

昨天代码工作正常,但今天它不想再开始并给我错误。我的部分代码:

if (isset($_GET['code'])) {
  $client->authenticate($_GET['code']);
  $_SESSION['access_token'] = $client->getAccessToken();
  $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
  header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}

我认为这是我必须更改代码才能工作的地方。

更多代码:

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
  $client->setAccessToken($_SESSION['access_token']);
} else {
  $authUrl = $client->createAuthUrl();
}

if ($client->getAccessToken()) {
  $_SESSION['access_token'] = $client->getAccessToken();
  $token_data = $client->verifyIdToken()->getAttributes();
}

2 个答案:

答案 0 :(得分:3)

令牌已过期。 您应该使用刷新令牌或再次登录来获取新令牌。

这就是消息所说的“令牌太晚了,1410345101> 1410341783:”

'现在'毫秒大于令牌到期毫秒。

答案 1 :(得分:1)

访问令牌将在3600秒后到期,这在令牌响应(参数expires_in)中指示。

  

{
    " access_token":" ya29.fQCQfvMjEu9fo6T45 ********* NfUoxILuk-SPa0puDawVssOss0sP0",     " token_type":" Bearer",
    " expires_in":3600,
    " refresh_token":" 1 / er3tmjZUUmXtr ******** JoJDDopM_xMww"
  }

成功完成OAuth 2授权代码流后,您将获得刷新令牌。此刷新令牌永不过期,您可以通过向Google OAuth 2.0授权服务器发送刷新令牌来获取新的访问令牌。