나는 FeathersJS 데모 채팅 응용 프로그램의 일부인 메시지 서비스와 매우 유사 인증 뒤에 FeathersJS 서비스 짓고 있어요 : 또한 https://github.com/feathersjs/feathers-chat/깃털 인증을 사용하면 앱 내부 서비스 호출을 인증 받아야합니까 (그리고 어떻게 피하는가)?
을, 나는 메시지를 저장해야하는 이벤트 리스너를 정의하고 싶습니다 그것 앱의 메시지 서비스를 수신하고 필요한 모든 후크를 호출하여 클라이언트 애플리케이션에 알립니다.
여기에 내 현재의 접근 방식 :
module.exports = function() {
const app = this;
const Model = createModel(app);
const paginate = app.get('paginate');
const options = {
name: 'messages',
Model,
paginate
};
app.use('/messages', createService(options));
const service = app.service('messages');
service.hooks(hooks);
const sender = new MyExternalMessageSender();
sender.on('message', (msg) => {
service.create(msg, {user: {_id: 0}}).then(result => console.log(result));
});
if (service.filter) {
service.filter(filters);
}
};
이 때때로 잘 작동하고 MyExternalMessageSender
에게 통지로 때로는 무작위로 곧 오류가 발생하고 메시지 서비스의 create
메소드를 호출하려고합니다.
NotAuthenticated: No auth token
at Error.NotAuthenticated (projects\feathers-chat\node_modules\feathers-errors\lib\index.js:100:17)
at projects\feathers-chat\node_modules\feathers-authentication\lib\hooks\authenticate.js:102:31
어떻게하면 응용 프로그램 자체에서 JWT를 사용해야 메시지를 올바른 방법으로 저장할 수 있습니까?
지원해 주셔서 감사합니다.
감사합니다. 덕분에 후크가 작동하는 방식에 대해 많은 통찰력을 얻을 수 있습니다. 비동기 EventListener로서'MyExternalMessageSender'를 생각하면 새로운 메시지가 생성되는 경우가 있습니다. 문제가 지속됩니다. 앱을 시작하면 모든 것이 제대로 작동하고 수신 메시지가 앱 수준에 저장되지 않고 위의 NotAuthenticated 오류가 표시되는 경우가 있습니다. 앱을 다시 시작하면 가끔 도움이되고 때때로 그렇지 않을 수도 있습니다. 어떤 아이디어가 오류에 어떻게 접근할까요? 인증을하지 않아도 해지 될 수있는 것은 무엇입니까? – YMMD