Restivus аутентификация для метеорных методов
Я пытаюсь сделать доступным мое метеорологическое приложение для служб REST. Для этого я использую пакет "Restivus", который также отлично работает. Но однажды я хотел бы запустить метеорный метод this.userId
не определено
Api.addRoute('addArticle', {authRequired: true}, {
post: function () {
console.log(this.userId); //<-- hwuqtFXf8aKperJ5p
try {
Meteor.call("addArticle",this.bodyParams);
} catch (e) {
return {code:500,type:e.error,reason:e.reason};
}
}
});
метод:
new ValidatedMethod({
name: 'addArticle',
....
if (!this.userId) {
throw new Meteor.Error(...); //is thrown
}
Что я делаю неправильно?
1 ответ
Решение
В методах Meteor вы получаете текущий идентификатор пользователя, выполнив
Meteor.userId()
и не
this.userId
Так что вам нужно обновить свой код до
if(!Meteor.userId()){
throw new Meteor.Error(403, '403:Forbidden', 'You shall not pass!')
}