为什么我不能使用Axios通过GitHub REST API进行身份验证?

时间:2019-04-28 22:51:40

标签: javascript node.js axios github-api

我是REST的新手。

为进行全面披露,我正在Netlify Lambda函数内部运行此代码,并通过netlify-lambda进行测试。

我的curl命令起作用:

 curl -u "<username>:<password>" https://api.github.com/repos/<username>/<reponame>

但是当我尝试通过axios进行get请求时,我得到了404(根据github docs的说法,这意味着auth问题)。这就是我正在做的事情(没有自定义标头也无法使用,我一直在尝试随机的事情)。

axios({
    method: "get",
    url: `https://api.github.com/repos/${user}/<reponame>/`,
    headers: {
        Authorization: `Bearer ${githubToken}`,
        "Content-Type": "application/json"
    },
    auth: {
        username: user,
        password: pass
    }
    })
    .then(res => {
        callback(null, {
            statusCode: 200,
            body: JSON.stringify(res.data)
        });
    })
    .catch(err => {
        callback(err);
    });

我注意到的一件事是axios似乎正在获取我的用户名和密码,并将其添加到url之前,例如https://<username>:<password>@api.github.com/repos/<username>/<reponame>

这是应如何发送身份验证?

2 个答案:

答案 0 :(得分:1)

我不应该在URL末尾使用斜线结尾。

答案 1 :(得分:0)

如果您已经有令牌,则不需要用户/密码,只需将令牌添加到标题中即可。