我们正在为我们的REST端点使用Loopback,并希望在不使用Loopback用户模型的情况下实现JWT 。这意味着,我们希望使用类似jwt-simple的标记来验证对其余端点的每次调用。有没有办法让Loopback在每个入站请求中调用自定义身份验证函数并接受或拒绝请求?我们发现的所有解决方案都与Loopback的用户模型相关联,但我们拥有自己的用户模型。以下代码可能就足够了,但Loopback似乎覆盖了'/ api'路由:
app.use('/api', function(req,res,next) {
// PERFORM CUSTOM VALIDATION GOES HERE. ACCEPT OR REJECT THE CALL.
next();
})
关注问题#1 - 如何使用JS在中间件中定义参数?为了在代码中执行身份验证,我们需要请求,响应,用户和/或令牌。
app.middleware('auth:before', auth(???????))
function auth(req, res, next) {
console.log(req, res);
}
关注#1 - 以下是解决方案:
app.middleware('auth:before', auth)
function auth(req, res) {
console.log(req, res);
}
关注问题#2 - 您如何使用中间件拒绝访问? (上面#1)。
答案 0 :(得分:0)
您可以定义一个中间件函数,然后在middleware.json中注册它以在'auth:before'或某些早期阶段执行。
https://docs.strongloop.com/display/APIC/Defining+middleware