メソッドが(サーバーから)サーバー側とクライアント側のどちらで呼び出されたかを知るにはどうすればよいですか?

レオラム

Meteorアプリでは、サーバー上で次のようにメソッドが定義されています。

/* global Meteor */
Meteor.methods({
    notifyRequestRejected: function (username, reason) {
        if (!Meteor.userId()) {
            throw new Meteor.Error(403, 'Access denied');
        }
        return Meteor.http.post('…');
    }
});

認証されたユーザーとサーバー側(信頼できる)コードのみがメソッドを呼び出せるようにしたいので、メソッドがサーバー側とクライアントのどちらで呼び出されたかを確認するにはどうすればよいですか?this.calledFromServerメソッドのようなものはありますか?

レオラム

this.connectionプロパティを確認することで、メソッド呼び出しがサーバー側で行われたのかクライアント側で行われたのかを確認できます。

nullでない場合は、メソッドがクライアント側から呼び出されたことを意味します。

したがって、呼び出し元が認証されたユーザーまたはサーバー側のコードであることを確認するには、次を使用します。

Meteor.methods({
    notifyRequestRejected: function (username, reason) {
        if (!Meteor.userId() && this.connection) {
            throw new Meteor.Error(403, 'Access denied');
        }
        // etc.
    }
});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ