Чтобы выполнить такой однократный запрос, вы можете получить токены oauth из командной строки, используя ibmcloud iam oauth-tokens
.Чтобы получить токен IAM, я использую:
export IAM_TOKEN=`ibmcloud iam oauth-tokens | head -n 1 | awk ' {print $4} '`
Затем выполните команду cURL:
curl -H "Authorization: Bearer $IAM_TOKEN" ...
Anприложение должно запрашивать токены на основе упомянутого apiKey.
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Cache-Control: no-cache" -d 'apikey=<your api key here>&grant_type=urn:ibm:params:oauth:grant-type:apikey' "https://iam.bluemix.net/identity/token"
Вот пример использования запроса-обещания NPM:
const response = await rp({
url: 'https://iam.bluemix.net/identity/token',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
method: "POST",
body: `apikey=${apiKey}&grant_type=urn%3Aibm%3Aparams%3Aoauth%3Agrant-type%3Aapikey`,
json: true
});
const token = response.access_token;