使用基于令牌的身份验证从Bitbucket检索单个原始文件

时间:2015-12-24 11:27:07

标签: git oauth oauth-2.0 token bitbucket

我成功设法在these suggestions之后检索我的访问令牌并刷新令牌,我还可以使用访问令牌克隆我的私有存储库。但是,我现在要做的是使用相同类型的基于令牌的身份验证从我的私有存储库中检索单个原始文件。我到目前为止尝试的是:

curl "https://x-token-auth:{access_token}@bitbucket.org/michelezamuner/bpkg-test/raw/master/package.json"

但我收到此错误消息:

This endpoint does not support token-based authentication

我实际上甚至不知道这样的东西是否可以与Bitbucket一起做,但我没有发现这明确禁止任何地方。有谁知道这是否可能,以及如何做到这一点?谢谢!

1 个答案:

答案 0 :(得分:3)

是的,要将API与OAuth 2 Bearer令牌as per the spec一起使用,您应该通过以下任何一种方式(按优先级降序排列)传递它:

  • 授权请求标头:Authorization: Bearer mF_9.B5f-4.1JqM(注意缺少用户名元素)
  • access_token POST
  • 中填写表格编码的正文参数(application/x-www-form-urlencoded
  • 作为URI查询参数:/resource?access_token=mF_9.B5f-4.1JqM

由于Git和Mercurial对这些要求的效果不佳,我们发明了伪造的x-token-auth用户名填充符。但是,这仅适用于git / hg。 Bitbucket的所有其他部分都遵循OAuth 2 Bearer Token RFC。

修改

我现在意识到你实际上并没有使用API​​。您正在点击我们网站的某个网址。 API和UI是不同的属性,仅API支持OAuth。 API位于api.bitbucket.org域下,而bitbucket.org是该网站。域名不可互换。

相反,请尝试:

$ curl -H "Authorization: Bearer <token>" https://api.bitbucket.org/1.0/repositories/michelezamuner/bpkg-test/src/master/package.json