You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从BitBucket OAuth获取令牌?遇“无效OAuth客户端凭证”错误求助

解决Bitbucket OAuth "Invalid OAuth client credentials" 错误

我帮你梳理下这个问题,这个错误大概率是客户端凭证的格式或者配置细节出了问题,咱们一步步排查:

1. 优先检查curl命令的凭证格式

你用的-u "client_id: my_application_secret"这里有个关键错误:冒号和client_secret之间不能有空格!Bitbucket的Basic Auth要求凭证是client_id:client_secret的连续字符串,空格会被当成凭证的一部分,导致验证失败。

正确的格式应该是:

-u "你的OAuth consumer key:你的OAuth consumer secret"

(注意冒号前后都不要加空格)

2. 核对client_id和client_secret的正确性

  • 登录Bitbucket,进入你的OAuth应用设置页面,确认你用的my_application_key(对应页面里的「OAuth consumer key」)和my_application_secret(对应「OAuth consumer secret」)完全一致,有没有复制时漏掉字符、大小写错误或者多了空格。
  • 别把consumer key和secret搞反了,这也是常见的低级错误。

3. 确认授权码的有效性

  • 授权码是一次性使用的,如果你之前用这个码尝试过换令牌,哪怕失败了,它也会失效,得重新访问授权链接获取新的授权码。
  • 确保获取授权码时用的client_id,和换令牌时用的是同一个应用的凭证,不能中途切换应用。

4. 检查curl命令的完整URL和参数

换令牌的正确URL是https://bitbucket.org/site/oauth2/access_token,别漏了后面的路径。另外,如果你的OAuth应用设置了回调地址(redirect_uri),在POST请求里必须带上和授权时一致的redirect_uri参数,比如:

curl -X POST -u "你的consumer key:你的consumer secret" https://bitbucket.org/site/oauth2/access_token -d "grant_type=authorization_code&code=你的新授权码&redirect_uri=https://你的回调地址.com"

如果授权时没指定redirect_uri(应用里也没设置),那可以省略这个参数,但建议在应用里配置固定的回调地址,避免后续问题。

先从最容易出错的凭证格式开始排查,应该能解决大部分问题。

内容的提问来源于stack exchange,提问作者Otto Bismarck

火山引擎 最新活动