2

私はMeteorWebアプリケーションを作成するために使用しています。

私が扱っている問題は、という名前のコレクションがあり、匿名ユーザーではなく、ログインしているユーザーのみが利用できるようにしたいということですBooks

これが私がすることです:

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

ただし、これは最善の解決策ではありません。匿名ユーザーはBooks、ブラウザー コンソールを開いて を呼び出すことでコレクション情報を取得できるからMeteor.subscribe('Books');です。

残念ながら、これが今のところ私が考えることができる唯一の解決策です。allowMeteor のとについて聞いたことがありますが、ユーザーがコレクションに対してinsertupdate、またはremovedenyしたときにのみ影響するようです(ユーザーがコレクションをサブスクライブするのを妨げません)。

4

1 に答える 1

2

次のように、サブスクリプションをサーバー側からログインしているユーザーに制限できます。

Meteor & Security: Setting the Record Straight by Sacha Greifより:

ユーザーがログインしている場合にのみ投稿を公開:

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

あなたの場合、他のコードと一致するように適切に大文字に変更postsする必要があります。books

これにより、手動でサブスクライブしようとすると、匿名が空になります。

于 2014-11-17T08:07:41.570 に答える