2014-11-17 14 views
2

웹 응용 프로그램을 만들 때 Meteor을 사용하고 있습니다.MeteorJS - 익명 클라이언트가 컬렉션에 가입하지 못하게하는 방법은 무엇입니까?

내가 처리중인 문제는 Books, 이라는 컬렉션이 있는데 익명 사용자가 아닌 로그인 한 사용자 만 사용할 수 있기를 원합니다.

if (Meteor.userId()) Meteor.subscribe('Books'); 

그러나 익명 사용자는 여전히 자신의 브라우저 콘솔을 열고 Meteor.subscribe('Books');를 호출하여 Books 수집 정보를 얻을 수 있기 때문에 이것은 최선의 해결책되지 않습니다 :

이 내가 할 것입니다.

불행히도 이것은 지금까지 생각할 수있는 유일한 해결책입니다. 나는 유성의 allowdeny의 들었지만, 사용자 , 갱신를 삽입하거나 은 (컬렉션에 가입 에서 사용자를 방지하지 않음) 컬렉션을 제거 할 때 그들은 단지에 영향을 줄 것으로 보인다. 다음과 같이

답변

2

당신은 서버 측에서 로그인 한 사용자에게 가입을 제한 할 수 있습니다 Meteor & Security: Setting the Record Straight에서

Sacha Greif 기준 :

만 게시물을 게시 사용자가 로그인 한 경우 :

Meteor.publish('posts', function() { if(this.userId){ 
    return Posts.find(); } }); 

귀하의 경우에는 posts에서 books으로 변경해야합니다. prope 다른 코드와 일치하도록 자본화됩니다.

이렇게하면 익명으로 비워 두는 동안 수동으로 가입을 시도하게됩니다.