2014-02-16 2 views
1

audit-argument-checks 패키지를 사용하여 검사 할 때 Meteor.userId()을 검사 할 때 어떻게 대응합니까? userId를 실제로 확인해야합니까? 사용자 컬렉션 구축을위한 ID 생성이 항상 'STRING'이며 변경 될 수 없기 때문에Meteor.js의 감사 인수 검사 및 구독

Meteor.publish('scores', function(userId) { 
    check(userId, Match.any) 
    return Scores.find({userId: userId}) 
}) 
+0

아니라,'감사 인수-checks' 바보이고 확인하는'arguments' 목록에서 모든 인수가 필요합니다. 특별한 기호 나 다른 것을 인식하지 못합니다. – imslavko

답변

4

, 당신은 할 수 있습니다 :

check(userId, String); 

다른 모음에 대한 'MONGO' ID 생성을 사용하는 경우, 당신이 원하는 것을 할 : 사용자가 로그인되어있는 경우

check(docId, Meteor.Collection.ObjectID); 
+0

내장 된 사용자 컬렉션은 String ID 만 사용할 수 있으며 ObjectID가 사용되는 경우 setUserId 메소드는 해당 유형이 String 이길 기대하므로 사용자는 로그인 할 수 없습니다. 다음은 [버그 리포트] (https://github.com/meteor/meteor/issues/1834)입니다. 개발자가 완화 조치를 거부하더라도 마찬가지입니다. 그래서, 당신은 그것을 String이라고 안전하게 가정 할 수 있습니다. –

3

은 게시 기능은 이미 사용자 ID를해야합니다. this.userId으로 액세스 할 수 있으므로 사용자가 전달하거나 확인하지 않아도됩니다. 이처럼

:

Meteor.publish('scores', function() { 
    return Scores.find({userId: this.userId}) 
});