npm install @ibm-functions/iam-token-manager
Provide constructor parameters iamApikey
and iamUrl
(Optional) to create a new instance.
const itm = require('@ibm-functions/iam-token-manager')
const m = new itm({
"iamApikey":"1234ABCD..."
})
Use the function getToken
to get an IAM acess token. This function returns a Promise
.
m.getToken().then(token => console.log('Authorization:', 'Bearer', token))
output:
Authorization: Bearer eyJhbGciOiJIUz......sgrKIi8hdFs
Use the function getAuthHeader
to get a Bearer HTTP Authorization header including the token. This function returns a Promise
.
m.getAuthHeader().then(header => console.log('Authorization:', header))
output:
Authorization: Bearer eyJhbGciOiJIUz......sgrKIi8hdFs
const itm = require('@ibm-functions/iam-token-manager')
const m = new itm({
"iamApikey":"1234ABCD..."
})
const openwhisk = require('openwhisk')
const ow = openwhisk({
auth_handler:m
})
Note: Need to use a version of openwhisk
that supports auth_handler
plugin.
The nodejs v8 runtime provides an openwhisk npm module already including the iam token manager plugin pre-installed, it will use the environment variable __OW_IAM_NAMESPACE_API_KEY
as the iamApikey
var openwhisk = require('openwhisk');
function action() {
var ow = openwhisk();
return ow.actions.invoke('sample')
}
exports.main = action