【问题标题】:Xero Api NodeJS - invalid grant issueXero Api NodeJS - 无效授权问题
【发布时间】:2020-07-21 13:52:23
【问题描述】:

我正在使用 xero-node 模块通过 NodeJS 为 Xero 创建一个应用程序。

由于某种原因,每个刷新令牌的请求都作为无效授权返回

我已获取代码并在我执行身份验证后立即尝试获取刷新,这样我可以确保它是最新的令牌并且仍然执行相同的操作。

下面的代码在Xero传回应用程序时调用此方法(callbackURL)

我得到的错误是“invalid_grant”,它没有给出任何其他错误,Xero 中没有错误日志,所以非常无用。

exports.callback = async function (req, res) {
    const tokenSet = await xero.apiCallback(req.url);

    try {
        const newTokenSet2 = await xero.refreshWithRefreshToken('ClientID, 'ClientSecret', tokenSet.refresh_token);
    }
    catch(error){

        console.log(`ERROR  refresh: \n ${JSON.stringify(error.response.body, null, 2)}`);

    };




    ///console.log(tokenSet);

};

有什么想法吗?

【问题讨论】:

    标签: node.js xero-api


    【解决方案1】:

    如果没有看到更多上下文代码,这有点难以判断。我假设您实际上并未将“ClientID”和“ClientSecret”作为字符串发送。

    我会在此处推荐您使用 openid-client 使用完全初始化的客户端进行刷新: https://github.com/XeroAPI/xero-node-oauth2-app/blob/f1fbd3a08e840e54e8ce57f7050ddde6686208d8/src/app.ts#L233

    或者在这里,通过传递客户端、秘密和 refresh_token 来初始化一个空客户端并刷新: https://github.com/XeroAPI/xero-node-oauth2-app/blob/f1fbd3a08e840e54e8ce57f7050ddde6686208d8/src/app.ts#L236

    我认为发生的情况是您使用的是第二种方法,但客户端已经初始化。同样,在有限的背景下很难说清楚。如果这不能解决问题,请发布更多详细信息。

    【讨论】:

      猜你喜欢
      • 2020-04-24
      • 2013-04-06
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      相关资源
      最近更新 更多