Node js中具有主体传播的访问目标

2020-08-30 00:28发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我们正在开发一个需要通过云连接器连接后端(ECC)系统的应用程序。我们已经使用主体传播配置了目标。 我需要在node js应用程序中使用目标。

如果我在应用路由器的xs-app.json中定义了目标,并且直接在node中对应用路由器的URL进行了硬编码。 这是正确的方法吗?>

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我们正在开发一个需要通过云连接器连接后端(ECC)系统的应用程序。我们已经使用主体传播配置了目标。 我需要在node js应用程序中使用目标。

如果我在应用路由器的xs-app.json中定义了目标,并且直接在node中对应用路由器的URL进行了硬编码。 这是正确的方法吗?>

付费偷看设置
发送
6条回答
d56caomao
1楼-- · 2020-08-30 00:56

嗨Manikandan,

您的建议是可能的,但是您可以通过公共URL使用后端服务,当然,您仍然需要accessToken来使用它。 将Nodejs应用程序放在前面的原因是什么? 您是否检查过CAP以增强服务?

我写了一个关于nodjes中axios的博客文章。 通过使用该库,您无需阅读目的地,只需传递目的地名称即可。 在这种情况下,该服务不会公开,并且目的地将在您的nodejs应用程序中使用。 从0.0.14版开始,主体传播应该起作用...

 const {SapCfAxios} = require('sap-cf-axios');
 const yourDestination = SapCfAxios(" YourDestinationName");
 const令牌= req.headers.authorization

 const response = await yourDestination({
   方法:"发布",
   网址:"/img/BookSet",
   数据:{
     标题:"在SAP Cloud Foundry中使用Axios",
     作者:" Joachim Van Praet"
   },
   标头:{
     " content-type":" application/json"
     "授权":令牌
   }
 })

kr,

Joachim

渐行渐远_HoldOn
2楼-- · 2020-08-30 00:49

嗨,格雷戈尔,

是的,这是正确的。 它必须使用登录的用户进行身份验证。

spaceman01
3楼-- · 2020-08-30 00:58

您好 Manikandan Kannan

您的mta.yaml文件中的approuter模块的srv_api目标上是否具有forwardAuthToken?

-名称:srv_api
         组:目的地
         特性:
           forwardAuthToken:true
           名称:srv_api
           网址:"〜{url}"

 

您可以在此处找到带有身份验证的帽项目的简单示例:

https://github.com/jowavp/SAP-CAPM-Nodejs- 授权示例

kr,

Joachim

SAP小黑
4楼-- · 2020-08-30 00:44

嗨Joacihm,

请找到xs-app.json并退出处理程序。

xs-app.json

 {
 " welcomeFile":"/index.html",
 " authenticationMethod":"路由",
 "登出": {
 " logoutEndpoint":"/img/do/logout"
 },
 "路线":[{
 " source":" ^/catalog(。*)$",
 " authenticationType":" xsuaa",
 " destination":" srv_api",
 " csrfProtection":false
 }
 ]
 } 
退出处理程序
 this.on(" CREATE"," SIMULATION_POST",异步(项目)=> {

 const {
 odataRequest,
 数据
 } =项目
 让vCPC_ID =等待getCPCID(items ._。req,数据)
 data.CPC_ID = vCPC_ID.d.LAUFI
 items.reply(数据)

   //我从此处将请求传递给节点函数,当我在节点中使用请求标头授权时,它说request.headers未定义。
                 模拟(item ._。req,数据,vCPC_ID)

 });


 
SAP砖家
5楼-- · 2020-08-30 00:44

我建议您搜索:云铸造节点 目标

Climb_Ma
6楼-- · 2020-08-30 00:41

但是Node JS应用程序是否在使用该应用程序的终端用户或独立用户的上下文中调用后端?

一周热门 更多>