我试图在调用远程方法之前使用环回远程钩子来检查用户令牌,但问题是我只能返回一个javascript错误,就像这些一样。
"error": {
"statusCode": 401,
"name": "Error",
"message": ""
}
这是我在遥控器之前使用的代码。
Model.beforeRemote('method', function (context, unused, next) {
let token = Model.app.models.Token;
let id = context.args.Id;
let date = moment();
Rx.Observable.fromPromise(token.find({
where: {
and: [
{ id: id, },
{ expiration: { gt: date } }
]
}
})).subscribe((token => {
if (token.length > 0) {
next();
} else {
let err = new Error();
err.status = 401;
delete err.stack;
return next()
}
}))
});
我需要一个"定制"不是错误的回应,就像这样。
{
"success": false,
"data": {
"service": "self",
"operation": "rest",
"code": "unauthorized"
},
"message": "Invalid token"
}
我尝试使用After Remote钩子,我可以更改响应以获得类似的内容,但我希望在令牌无效的情况下获得更快的响应。
有没有办法用before钩子实现这个目的?或者我必须在勾手后使用?
由于
答案 0 :(得分:0)
您可能希望将错误传递给下一个函数:
return next(err)