当我运行下面的脚本时,我得到以下回复:
{"错误":" access_denied"," error_description":"访问被拒绝"}
如何解决这个问题?
const request = require('request');
request({
url: 'access_token_uri',
method: 'POST',
auth: {
user: 'client_id',
pass: 'client_secret'
},
form: {
'grant_type': 'client_credentials'
}
}, function(err, res) {
var json = JSON.parse(res.body);
encrypt(json.access_token, 'word');
});
function encrypt(token, word){
request({
url: 'uri/encrypt',
method: 'POST',
auth: {
'bearer': token
},
body: word
}, function(err, res) {
console.log(res.body);
});
}

答案 0 :(得分:1)
从你的样本中说出来有点难,但我认为你得到了错误类型的令牌。对于/encrypt
端点,您需要基于密码的令牌。
有关更多信息,请参阅Get a Password Credentials Access Token部分(我无法直接链接到该部分,您必须使用上一个链接向下滚动它)。
这个过程基本上是这样的:
cf login
cf oauth-token
curl -H "Authorization: <oauth-token>" https://uri/encrypt -d 'Value to be encrypted'
如果您想查看cf
cli正在使用的API,您可以export CF_TRACE=true
(Bash)或set CF_TRACE=true
(Windows)然后重复这些命令。这将转储HTTP请求/响应信息。