我某些部分人将禁止使用应用程序(模块)的某些部分,因此我想在上钩之前进行检查,并在需要时发送未经授权的回复。 我已经在后端成功抛出了错误,但是在前端,我仍然获得了成功的响应,就像没有错误一样。
这是我的代码的样子:
1。检查发送请求的用户是否禁止应用的功能:
function isAppForbidden(hook) {
let forbiddenApps = [];
hook.app.services.settings.find({
query: {
$limit: 1,
$sort: {
createdAt: -1
}
}
}).then(res => {
let array = hook.params.user.hiddenApps;
if(array.indexOf('qualitydocs') >= 0 || res.data[0].forbiddenApps.indexOf('qualitydocs') >= 0) {
hook.response = Promise.reject({error: '401 Unauthorized'});
//this part is important, the rest not so much
//what im expecting to do here is just to return unauthorized response
}
});
return hook;
}
但是现在这只是在后端抛出错误,如:
“错误:未处理的拒绝,位于:Promise Promise {
{错误:{代码:“ 401”,消息:“未经授权”}}}}代码= 401,消息=未经授权”
前端仍然获得成功的响应(200个请求的数据)
我只是在钩子之前调用此函数:
before: {
all: [
authenticate('jwt'),
hook => includeBefore(hook),
hook => isAppForbidden(hook) //here, rest is not important
],
find: [],
get: [],
create: [(hook) => {
hook.data.authorId = hook.params.user.id;
}],
update: [],
patch: [],
remove: []
},