Node.js 登录[sap]cloud foundry并使用nodejs包装器获取api响应
我有一个场景,我试图获取cloudfoundry SAP中我的帐户空间和组织的以下主机url的API响应Node.js 登录[sap]cloud foundry并使用nodejs包装器获取api响应,node.js,single-sign-on,sap,node-modules,cloud-foundry,Node.js,Single Sign On,Sap,Node Modules,Cloud Foundry,我有一个场景,我试图获取cloudfoundry SAP中我的帐户空间和组织的以下主机url的API响应 https://api.cf.eu10.hana.ondemand.com 我使用nodejs(wrapper cf client)脚本进行身份验证,但每当我尝试登录时,它都会提供以下错误 Error: {"error":"unauthorized","error_description":"{"error":"invalid_gran
https://api.cf.eu10.hana.ondemand.com
我使用nodejs(wrapper cf client)脚本进行身份验证,但每当我尝试登录时,它都会提供以下错误
Error: {"error":"unauthorized","error_description":"{"error":"invalid_grant","error_description":"User authentication failed: INVALID_AUTHORIZATION_HEADER_LENGTH"}"}
这是我的nodejs脚本
"use-strict";
const endpoint = "https://api.cf.eu10.hana.ondemand.com";
const username = "myusername"; //I have created a trial account
const password = "Password"; //I have created a trial account
const JsonFind = require('json-find');
const fs = require('fs')
const util = require('util');
const dJSON = require('dirty-json');
const CloudController = new (require("cf-client")).CloudController(endpoint);
const UsersUAA = new (require("cf-client")).UsersUAA;
const Apps = new (require("cf-client")).Apps(endpoint);
const Spaces = new (require("cf-client")).Spaces(endpoint);
const Orgs = new (require("cf-client")).Organizations(endpoint);
CloudController.getInfo().then( (result) => {
UsersUAA.setEndPoint(result.authorization_endpoint);
return UsersUAA.login(username, password);
}).then( (result) => {
Orgs.setToken(result);
return Orgs.getOrganizations();
}).then((result) => {
all_orgs = result.resources //returns api
get_orgs=util.inspect(all_orgs, {depth: null});
console.log(get_orgs)
});
我所看到的是,当我正常登录cf客户端时,它需要sso密码和用户名密码。
我如何在这里提供这些信息或任何想法我如何在这里登录并获取数据。因为我对此做了很少的研究,并发现可以使用令牌生成器来克服这些问题,下面是代码
"use-strict";
var totp = require('totp-generator');
const endpoint = "https://api.cf.eu10.hana.ondemand.com";
var token = totp('clientsecretidgoeshere');
const username = "myusername"; //I have created a trial account
const password = "Password"+token; //I have created a trial account
const JsonFind = require('json-find');
const fs = require('fs')
const util = require('util');
const dJSON = require('dirty-json');
const CloudController = new (require("cf-client")).CloudController(endpoint);
const UsersUAA = new (require("cf-client")).UsersUAA;
const Apps = new (require("cf-client")).Apps(endpoint);
const Spaces = new (require("cf-client")).Spaces(endpoint);
const Orgs = new (require("cf-client")).Organizations(endpoint);
CloudController.getInfo().then( (result) => {
UsersUAA.setEndPoint(result.authorization_endpoint);
return UsersUAA.login(username, password);
}).then( (result) => {
Orgs.setToken(result);
return Orgs.getOrganizations();
}).then((result) => {
all_orgs = result.resources //returns api
get_orgs=util.inspect(all_orgs, {depth: null});
console.log(get_orgs)
});