CAP Node.js身份验证

2020-09-03 02:07发布

         点击此处--->   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

         点击此处--->   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条回答
愤怒的猪头君
1楼 · 2020-09-03 02:44.采纳回答

嗨,莱利,

感谢您的答复。

似乎我的示例在试用帐户上运行得很好。
我更改了一些分配(提高了目的地的配额),现在在其他帐户上一切正常。

kr,

Joachim

clever101
2楼-- · 2020-09-03 02:44

Joachim,

这对我有用:事实证明,我正在从事的项目缺少几个关键要素。 这两个都是对Node服务项目的更改。

首先,确保此子句出现在服务项目的package.json文件中:

" cds":{
         "要求":{
             " uaa":{
                 " kind":" xsuaa"
             }
         }
     } 

接下来,必须将几个Node程序包添加到项目中。 在命令行中工作时,我是通过以下方式添加它们的:

 npm install-保存护照@ sap/xssec @ sap/audit-logging 

添加这些软件包基本上可以解析传入的JWT令牌,并可以在您的服务中提供适当的授权功能。

如果您以前已经完成了这些步骤,那么显然还有其他事情在发生-让我知道这两种方法。

Riley

SC_Yao
3楼-- · 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'} 

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

一周热门 更多>