CAP Node.js身份验证

2020-09-03 02:07发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 在我的第一个CAP ...

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

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


大家好,

在我的第一个CAP nodejs应用程序的开发中,汗水和几乎流泪。 我无法进行身份验证。

我已经在一个非常简单的服务中提取了问题,该服务将在服务中显示用户ID。

首先,我创建了一个简单的CDS服务。

 @impl:'../service.js'
 @ cds.query.limit:100
 服务CapmAuthService {
  
   实体用户{
     关键用户名:字符串;
   }
    
 }

 

然后,我创建了一个函数来处理用户实体的get请求。 这将始终返回一个表,其中只有一个条目具有当前用户的用户名。

 const readFunction =异步(req)=> {
 返回[
             {
                 用户名:req.user.id
             }
         ];
 };

 module.exports =(srv)=> {
 srv.on('READ','User',readFunction);
 };
 

在SAP Web IDE中进行测试始终会返回匿名用户。
为强制进行身份验证,我添加了一个approuter。

 {
 " welcomeFile":"/img/capm-auth",
 " authenticationMethod":"路由",
 "登出": {
 " logoutEndpoint":"/img/do/logout"
 },
 "路线":[{
 " source":" ^/(。*)$",
 " target":" $ 1",
 " authenticationType":" xsuaa",
 " scope":" $ XSAPPNAME.user",
 " destination":" srv_api",
 " csrfProtection":false
 }]
 }
 

我为用户分配了一个角色集合,该集合包含范围$ XSAPPNAME.user。

但是当我将应用程序部署到cloud-foundry并测试为approuter创建的URL时,显示的用户名仍然是匿名的。

我没主意了,任何帮助都将不胜感激...:-)

有一个github存储库,上面有我的代码:

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

kr,

Joachim

3条回答
SC_Yao
2020-09-03 02:57

Joachim,

对于它的价值,我正在开发一个完全不同的CAP应用程序中看到类似的东西。 就我而言,即使在approuter上登录后,我仍可以在cf日志中看到该用户是"匿名"用户。 我在不同的环境中使用CF和approuter,所以我可以肯定大多数配置都是正确的。

 2019-08-28T09:27:38.38-0500 [APP/PROC/WEB/0] OUT GET/wiki-pages/$ metadata
      2019-08-28T09:27:38.38-0500 [APP/PROC/WEB/0] ERR {用户:'anonymous',ip:'10 .0.72.8'} 

我正在咨询我的内部资源。

一周热门 更多>