我应该在GitHub API中为身份验证提供哪些标头?

时间:2017-05-26 16:46:38

标签: python api github

我试图在GitHub API中使用基本身份验证。我写了这样的话:

reqURL = "https://api.github.com/repos/user/repo"
pullreqsURL = urllib.request.Request(reqURL)
pullreqsURL.add_header("Authorization", "Basic " + str(base64.urlsafe_b64encode(b'Username:myAuthTokenORpass')) )
pullreqsURL.add_header("Content-Type", "application/json")
pullreqsURL.add_header("Accept", "application/json")
urllib.request.urlopen(pullreqsURL)

然而,它一直在抛出HTTPError 通过评论第3行,它很顺利。

好。我使用个人令牌代替user:pass

解决了这个问题
pullreqsURL.add_header("Authorization", "token >mytoken<" )

1 个答案:

答案 0 :(得分:0)

应该可以验证via Basic Authentication with username/password 引用链接:

  

通过用户名和密码

     

要使用GitHub API进行基本身份验证,只需发送即可   与帐户关联的用户名和密码。

但是,我不知道Python,所以我不知道str(base64.urlsafe_b64encode(b'Username:myAuthTokenORpass'))是否是Base64编码用户名/密码的正确方法。

正如您提到的个人访问令牌,也可以通过基本身份验证进行身份验证,但使用访问令牌而不是您的真实密码。

我的第一个链接也解释了这一点 引用:

  

通过OAuth令牌

     

或者,您可以使用personal access tokens或OAuth   代币而不是密码。

curl -u username:token https://api.github.com/user
     

如果您的工具仅支持Basic,则此方法很有用   身份验证但您希望利用OAuth访问令牌   安全功能。

我正在使用这种方法在我的项目中取得成功。