如何使用AJAX调用对GitHub执行2因素身份验证

时间:2018-02-02 12:51:14

标签: javascript ajax authentication github

我想查询GitHub以获得所有开放的拉动。我之前从未尝试过这样的事情,而且就我自己而言,我没有同事可以寻求指导。到目前为止唯一的帮助是文档https://developer.github.com/v3/auth/

https://stackoverflow.com/a/25319551/1221410显示了如何提供我的用户名和密码。但是,GitHub repo具有双因素身份验证。

GitHub doc的相关部分(我认为)是

  

除基本身份验证凭据外,您还必须在X-GitHub-OTP标头中发送用户的身份验证代码(即一次性密码)

我创建了一个个人访问令牌,我的代码看起来像

const auth = getAuth();
$.ajax({
        type: "GET",
        url: "https://api.github.com/repos/company/repo/pulls",            
        dataType: 'json',
        async: true,
        headers: { 
            "Authorization": "Basic " + auth,
            "X-GitHub-OTP": "d......Access...Token.......5"
        },
...

上述内容始终会返回失败并显示以下消息

  

必须指定双因素身份验证OTP代码。

我以为我在标题中。我不确定我做错了什么

1 个答案:

答案 0 :(得分:1)

X-GitHub-OTP标题用于一次性密码,您从Authenticator应用程序或通过短信登录时获得的6位数代码。它不适用于API令牌。