我正在尝试在我的应用程序中创建自定义 IBM AppID Management Api 接口。为此,我使用 IBM IAM Token Manager 库来获取 IAM 访问令牌。
const itm = require('@ibm-functions/iam-token-manager')
const m = new itm({
"iamApiKey": apiKey
})
m.getAuthHeader().then(token => {
console.log("this one won't work", token)
}
var headers =
{
'accept': 'application/json',
'Authorization': token,
'Content-Type': 'application/json'
};
var options =
{
url: replacedIssUrl+"/users",
method: 'POST',
headers: headers,
body: dataString
};
function callback(error, response, body) {
console.log(response)
if (!error && response.statusCode == 200) {
console.log(body); //returns "body: "Forbidden"
}
}
request(options, callback)
每当我尝试使用库生成的令牌预注册用户时,回调返回状态 403 - 禁止,但如果它直接通过 ibmcloud shell (ibmcloud iam oauth-tokens) 获取 IAM 访问令牌,它工作正常。
有人知道为什么会这样吗?我知道 IAM 令牌管理器库生成的访问令牌正在工作,因为我正在使用它来获取相同代码上的用户 ID。
当我的访问令牌出现问题时,它通常返回“未经授权”,而不是“禁止”。
我不知道为什么会这样。
提前致谢。