Метод с "try / catch" хорош, но есть другой способ, основанный на ловушках .
1) Создание пользовательских ловушек isAuth.js
:
module.exports = (context) => {
return !!(context.params.headers.authorization
&& context.params.headers.authorization !== 'null'
&& context.params.headers.authorization !== '');
};
2) Исправлена услуга hooks.js
(app.service('/my-url').hooks(hooks)
), в которой метод авторизации будет необязательным. ПРИМЕЧАНИЕ: если пользователь не авторизован, то в «params.user» объект «пользователь» будет отсутствовать.
const { iff } = require('feathers-hooks-common');
const { authenticate } = require('@feathersjs/authentication').hooks;
const isAuth = require('isAuth');
module.exports = {
before: {
find: [iff(isAuth, authenticate('jwt'))],
},
after: {}
};