SuperAgent-未经授权,使用新的承载令牌重试原始请求

时间:2020-08-24 15:35:11

标签: javascript ajax authorization superagent

问题:

我正在尝试使用超级代理重试我的原始请求。这是一些伪:

function postRequest({
    parameters
}) {
    return superagent.post(url)
    .set("Authorization", `Bearer ${process.env.initialToken}`)
    .send({data})
    .then(res => {
        if (res.unauthorized) { 
          // I want to make a API call, get a new token, then redo postRequest() with new bearer
        }
    })
    .catch(err => {
        throw err
    });
}

问题:

我注意到有些开发人员在捕获中处理此问题,其他开发人员在响应中处理。我还注意到有人使用.on插件进行检查。

查看超级代理文档,我应该尝试自定义retry()吗?我可以以某种方式使用request.auth('my_token', { type: 'bearer' })吗?这可能很简单,但是在这种用例下很难遵循他们的文档。请让我知道您的想法!

1 个答案:

答案 0 :(得分:0)

解决方案-能够通过使用相同的初始参数再次返回对函数的调用来解决。您可以在错误处理中遵循相同的逻辑/模式。

注意-retry()API存在一些问题,无法按401的预期工作,并且插件在此用例中过大。