我试图在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<" )
答案 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访问令牌 安全功能。
我正在使用这种方法在我的项目中取得成功。