我正在使用c#开发一个访问CoinBase Api的应用程序。用户输入凭据后,我会在回调中从api获取代码。我交换了access_token的代码。我确实得到了一个带有access_token,token_type,refresh_token,expires_in,scope的令牌。所有东西都来自CoinBase。
问题是当我将access_token复制到Postman时,我得到了invalid_token。以下是我打电话的方式:
Api Url:
使用这些标题:
Content-Type:application/json
Authorization:bearer <access_token here>
CB-VERSION:2018-02-09
另一件有趣的事情是,如果我将access_token粘贴到jwt.io中,它就无法读取它。它显示了包含许多奇怪的ascii字符的标题:mÖߧÜ
为什么会发生这种情况的任何线索?我在其他Api上使用Postman中的确切调用,它们工作正常....
感谢您的见解, 杰夫
答案 0 :(得分:0)
在这整个晚上度过了这个之后,我终于明白了,想要分享。我在Postman中完全交换了代码和access_token,我得到了同样的错误,invalid_token!
为了好玩,我选择了Postman中的授权选项卡,并从下拉列表中选择了不记名令牌。我粘贴在access_token中并单击了预览按钮。它说我的持有人令牌已被应用。我点击了发送按钮和中提琴!它实际上工作!!经过几分钟的调查,我意识到它已经在第二次放置了不记名令牌auth标题......嗯,我把它删除了,它又失败了。起初我以为Coinbase被破坏了,需要它在那里两次??? Naa,不可能。所以,我删除了我的auth标题行,并留下了一次Postman放入那里(有效地改变了标题的顺序)。那就做到了!
修复:将标题更改为:
Content-Type:application/json
CB-VERSION:2018-02-09
Authorization:Bearer <access_token here>