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!')
    }
Другие вопросы по тегам