SAP Cloud SDK for JavaScript:将XSSEC与NestJS集成时出错

2020-08-21 08:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好,遵循 Tobias Tr...

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

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


大家好,
遵循 Tobias Trapp 丹尼斯·亨普芬正在讨论这里我进行了一些研究,研究如何(在我的最大努力和技能范围内)将xssec库中JWTStrategy的用法集成到NestJS的Passport实现中,这是在使用Sap初始化新项目时得到的 Cloud SDK CLI。

我"差不多"到了那里,但现在我陷入了一个我无法解决的问题。

我创建了一个简单的存储库 sapcloudsdk-nestjs-xsuaa 以复制问题,但是 这是我的简要介绍:

  1. 在CF上准备XSUAA实例和Destination实例
  2. 将approuter添加到项目中(使用CLI的add approuter命令)
  3. 在approuter文件夹和根文件夹中正确配置default-env.json文件以进行本地测试
  4. 安装必要的依赖项:@ nestjs/passport护照password-jwt @ sap/xssec @ sap/xsenv

生成一个新的" auth"模块,自定义策略类和一个自定义防护以保护端点:

  1. 嵌套生成模块auth/auth

  2. 嵌套生成类auth/xsuaa.strategy
  3. 嵌套生成防护auth/xsuaa.guard

编译安装程序,然后启动应用程序。 假设您使用的是默认端口,则调用http://localhost:5000/yourendpoint将进入XSUAA登录页面。

进行登录并:

 [嵌套] 17174-2020-03-15 21:48:43 [ExceptionsHandler] this._secretOrKeyProvider不是函数+ 15597ms
 TypeError:this._secretOrKeyProvider不是函数
     在XsuaaStrategy.JwtStrategy.authenticate(/Users/stevebob/Desktop/SAP/CLOUD SDK/xsuua-test/node_modules/passport-jwt/lib/strategy.js:99:10)
     尝试中(/Users/stevebob/Desktop/SAP/CLOUD SDK/xsuua-test/node_modules/passport/lib/middleware/authenticate.js:366:16)
     在身份验证时(/Users/stevebob/Desktop/SAP/CLOUD SDK/xsuua-test/node_modules/passport/lib/middleware/authenticate.js:367:7)
     在Promise(/Users/stevebob/Desktop/SAP/CLOUD SDK/xsuua-test/node_modules/@nestjs/passport/dist/auth.guard.js:84:3)
     在新的Promise中()
     在/Users/stevebob/Desktop/SAP/CLOUD SDK/xsuua-test/node_modules/@nestjs/passport/dist/auth.guard.js:76:83
     在XsuaaGuard。<匿名>(/Users/stevebob/Desktop/SAP/CLOUD SDK/xsuua-test/node_modules/@nestjs/passport/dist/auth.guard.js:48:36)
     在Generator.next()
     在/Users/stevebob/Desktop/SAP/CLOUD SDK/xsuua-test/node_modules/@nestjs/passport/dist/auth.guard.js:20:71
     在新的Promise(

我认为这与策略的配置方式有关:" secretOrKeyProvider"参数需要一个回调函数(而不是新的JWTStrategy实例)

如果有人有想法,我将很乐意为您贡献-并且学习:)

非常感谢

罗伯托。

(254.0 kB)
3条回答
灬番茄
2020-08-21 09:08

您好,Dennis,我 我会在博客中写下一些东西,我想在此分享我对使用SDK的丰富经验的感想:)

我暂时关闭此线程。

一周热门 更多>