Meteor 方法的 Restivus 身份验证
Restivus authentication for Meteor methods
我正在尝试让我的 meteor-app for 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
}
我做错了什么?
在 Meteor 方法中,您可以通过
获取当前用户 ID
Meteor.userId()
而不是
this.userId
因此您需要将代码更新为
if(!Meteor.userId()){
throw new Meteor.Error(403, '403:Forbidden', 'You shall not pass!')
}
我正在尝试让我的 meteor-app for 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
}
我做错了什么?
在 Meteor 方法中,您可以通过
获取当前用户 ID Meteor.userId()
而不是
this.userId
因此您需要将代码更新为
if(!Meteor.userId()){
throw new Meteor.Error(403, '403:Forbidden', 'You shall not pass!')
}