如何使用身份验证令牌对 oracle cloud ipnetwork API 进行身份验证?
how to authenticate to oracle cloud ipnetwork API using auth token?
我无法使用 auth 对 oracle 云进行身份验证 token.I 我正在使用节点 js 中的 "request" 节点模块使用其 REST 连接到 oracle 云 endpoint.I 正在传递身份验证令牌在 header 中,我得到的回复是 "HTTP 401 Unauthorised"。不知道为什么会 happening.Any 感谢帮助。
这是一个首先获取令牌然后将其用于后续请求的示例。
首先设置这些环境变量:
- OC_REST_ENDPOINT
- OC_IDENTITY_DOMAIN
- OC_USER
- OC_PASSWORD
例如:
export OC_REST_ENDPOINT=https://api-z999.compute.us0.oraclecloud.com/
export OC_IDENTITY_DOMAIN=myIdentityDomain
export OC_USER=some.user
export OC_PASSWORD=supersecretpassword
然后使用下面的例子:
const request = require('request');
const restEndpoint = process.env.OC_REST_ENDPOINT;
const identityDomain = process.env.OC_IDENTITY_DOMAIN;
const user = process.env.OC_USER;
const password = process.env.OC_PASSWORD;
request(
{
method: 'POST',
uri: restEndpoint + 'authenticate/',
headers: {
'content-type': 'application/oracle-compute-v3+json',
},
body: JSON.stringify({ // Must be a string, buffer or read stream
user: '/Compute-' + identityDomain + '/' + user,
password: password
})
},
function(err, res, body) {
if (err) {
console.log(err);
return;
}
if (res.statusCode !== 204) {
console.log('Something broke.');
return;
}
console.log('Got auth token');
let token = res.headers['set-cookie'][0];
request(
{
method: 'GET',
uri: restEndpoint + 'instance/',
headers: {
'accept': 'application/oracle-compute-v3+directory+json',
'cookie': token
}
},
function(err, res, body) {
if (err) {
console.log(err);
return;
}
console.log(body);
}
);
}
);
我无法使用 auth 对 oracle 云进行身份验证 token.I 我正在使用节点 js 中的 "request" 节点模块使用其 REST 连接到 oracle 云 endpoint.I 正在传递身份验证令牌在 header 中,我得到的回复是 "HTTP 401 Unauthorised"。不知道为什么会 happening.Any 感谢帮助。
这是一个首先获取令牌然后将其用于后续请求的示例。
首先设置这些环境变量:
- OC_REST_ENDPOINT
- OC_IDENTITY_DOMAIN
- OC_USER
- OC_PASSWORD
例如:
export OC_REST_ENDPOINT=https://api-z999.compute.us0.oraclecloud.com/
export OC_IDENTITY_DOMAIN=myIdentityDomain
export OC_USER=some.user
export OC_PASSWORD=supersecretpassword
然后使用下面的例子:
const request = require('request');
const restEndpoint = process.env.OC_REST_ENDPOINT;
const identityDomain = process.env.OC_IDENTITY_DOMAIN;
const user = process.env.OC_USER;
const password = process.env.OC_PASSWORD;
request(
{
method: 'POST',
uri: restEndpoint + 'authenticate/',
headers: {
'content-type': 'application/oracle-compute-v3+json',
},
body: JSON.stringify({ // Must be a string, buffer or read stream
user: '/Compute-' + identityDomain + '/' + user,
password: password
})
},
function(err, res, body) {
if (err) {
console.log(err);
return;
}
if (res.statusCode !== 204) {
console.log('Something broke.');
return;
}
console.log('Got auth token');
let token = res.headers['set-cookie'][0];
request(
{
method: 'GET',
uri: restEndpoint + 'instance/',
headers: {
'accept': 'application/oracle-compute-v3+directory+json',
'cookie': token
}
},
function(err, res, body) {
if (err) {
console.log(err);
return;
}
console.log(body);
}
);
}
);