如何使用refresh_token刷新uber的access_token

问题描述 投票:0回答:1

我有一个问题,当我通过uber api生成第一个oauth响应时,我得到所需的所有信息(access_token,refresh_token)

但是当我希望刷新特定用户的access_token时,我得到invalid_grant(我知道这意味着刷新令牌已经过期,但我生成了代码,并且首先尝试它失败,即使代码仍然有效)

这是我用来刷新令牌的代码,有人可以解释为什么它没有给我一个新的代码吗?

function refreshToken()
{
    $url = 'https://login.uber.com/oauth/v2/token';
    $fields = array(
        'client_id' => MY_CLIENT_ID,
        'client_secret' => MY_CLIENT_SECRET,
        'grant_type' => "refresh_token",
        'refresh_token' => MY_REFRESH_TOKEN
    );

    $fields_string = '';
    foreach ($fields as $key => $value) {
        $fields_string .= $key . '=' . $value . '&';
    }

    $fields_string = rtrim($fields_string, '&');

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($fields));
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_VERBOSE, true);

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

我有代码存储在数据库中,抓住它们并尝试从那里使用它们,auth-code在i oauth之后工作正常,但是我需要能够刷新访问令牌以便查询UBER api以获取收据在我的webhook上准备好帖子,如果令牌过期我无法使用当前的身份验证令牌(持有令牌)访问该呼叫

这是我每次都得到的回应:

[error] => invalid_grant
php curl oauth-2.0 uber-api
1个回答
0
投票

我在数据库中存储错误的刷新令牌:长度高于我存储的长度。例如:我正在存储varchar(100),我将它设置为varchar(255),现在它就像一个奇迹。

© www.soinside.com 2019 - 2024. All rights reserved.