Google身份验证返回无效授权

时间:2012-09-19 04:38:09

标签: authentication access-token

我知道此问题已经发布过。但他们都没有答案。所以我重新发布了这个问题。 我正在尝试获取分析数据。但在进行身份验证后,我收到了访问令牌的“invalid_grant”错误。现在我有相同的代码工作了大约3个月,现在突然间我得到了这个问题。我已将刷新令牌保存在数据库中,并使用它来获取访问令牌。请求令牌是否有可能到期?请帮忙!

$oauth2token_url    =   "https://accounts.google.com/o/oauth2/token";
$clienttoken_post   =   array(
                        "client_id" => $client_id,
                        "client_secret" => $client_secret,
                        "refresh_token" => $refreshToken,
                        "grant_type"    => 'refresh_token'
                    );

$authObj        =   getAccessToken($oauth2token_url, $clienttoken_post);

function getAccessToken($oauth2token_url, $clienttoken_post){

    $curl = curl_init($oauth2token_url);

    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $clienttoken_post);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $json_response = curl_exec($curl);
    curl_close($curl);

    $authObj = json_decode($json_response);

    return $authObj;
}

令牌的响应:****************** is - stdClass Object ( [error] => invalid_grant )

1 个答案:

答案 0 :(得分:1)

确定。我明白了。问题是,当用户授予应用程序权限时,刷新令牌会刷新。因此,如果用户授予权限(第二次),则刷新第一个刷新令牌(您已保存在数据库中或任何位置)。您所要做的就是每次获得权限时更新刷新令牌。