HANA上的NodeJS:使用JWT进行身份验证

2020-09-09 09:32发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我尝试使用NodeJS...

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

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


嗨,

我尝试使用NodeJS编写API。 我使用了SAP的几个演示之一。 为了从HANA-DB获得结果,每个请求都必须使用JSON Web令牌进行身份验证。 为此,我们使用Passport-Lib并将其与xssec-Strategy链接,Passport需要此xssec-Strategy来验证用户身份。 我不会让它工作。 在每次请求时,我都会得到 401未经授权,并且我不知道自己在做什么错。 我需要通过JWT进行授权,因为通过。 get("/img/route",function(req,res){var client = req.db; var hdbcon = new hdbext.getConnection(client); ...}) ; 。我能够轻松触发DB-Call。

这是我的代码:

"严格使用";

var port = process.env.PORT || 3000,

express = require(" express"),

app = express(),

xssec = require(" sap-xssec"),

xsjs = require(" sap-xsjs"),

xsenv = require(" sap-xsenv"),

护照= require(" passport"),

xsHDBConn = require(" sap-hdbext")

;

//

//JSON Web令牌

//身份验证模块配置

//

app.use(passport.initialize());

passport.use(新的xssec.JWTStrategy(xsenv.getServices({

uaa:{

标记:" xsuaa"

}

})。uaa));

//用于每个请求此身份验证模式

app.use(

passport.authenticate(" JWT",{

会话:false

}),

xsHDBConn.middleware()

);

//

//配置HANA

//用于XSJS(具有重定向功能)

//

var选项= xsjs.extend({

匿名:true//,//删除以对呼叫进行身份验证

//redirectUrl:"/img/index.xsjs"

});

选项= xsjs.extend(选项,xsenv.getServices({

哈娜:{

标记:" hana"

}

}));

//xsjs(options).listen(port); //仅XSJS需要

app.listen(端口);

console.log("服务器正在监听端口%d",端口);

app.all("/",function(req,res){

res.json({状态:200,消息:"确定",数据:"有效!"});

});

/**

*用户管理

*/

var userAPI = require(" ./api/user");

app.use("/img/user",userAPI);

/**

*未知路线

*/

app.all(" *",function(req,res){

res.json({状态:404,消息:"未知目标"。});

});




谢谢您的帮助!

2条回答
小灯塔
2020-09-09 10:01 .采纳回答

>在每个请求上,我都会得到401未经授权,并且我不知道自己在做什么错。

您是否已重定向到UAA登录? 您是否将Web模块作为路由放置在node.js模块的前面? 如果直接访问node.js模块,则获得401未经授权是完全正常的。

一周热门 更多>