associateCurrentUserを使用して外部呼び出しの呼び出しをFeathersサービスメソッドに制限します。外部に対してfeathersサービスメソッドをユーザーに限定しますが、内部呼び出しには任意の照会を許可します
また、サーバーがこのサービスメソッドを制限せずに呼び出せるようにします。
このサービスを使用すると、クライアントはロックテーブルを使用し、すべてのクライアントはすべてのロックを見ることができます。また、サーバはこのテーブルの中止された行をクリアする必要があります。行の破棄はネットワーク障害などで発生する可能性があります。サーバーがデータを削除すると、通常のフェザー削除イベントがクライアントに放出されます。
これはassociateCurrentUserとdisallow hookの組み合わせでなければならないと思いますが、どのように組み合わされるのかわからないので、これを実験することさえできません。
これはどのように実装しますか?
更新:
私はフックのcontext.params.providerがnullの場合、呼び出しはそうでない場合は、外部、内部であることを意味DAFFからこの答えUser's permissions in feathers.js APIを見つけました。これは本当にすべての場合にそうであれば誰でも確認できますか?
私自身のテストではそうだと思われますが、そこに特別なケースがあるかどうかは分かりません。
ありがとうございました!私は、associateCurrentUser + disallowフックの代わりにparams.providerを使用しなければなりませんでした。再び非常にエレガントな、いつものように羽毛。 – Matty
ええ、あらかじめ構築されたフックの多くは、特に古い認証フックは、既存のものがどのように動作するか(あるいは必要なものを行うか)よりはるかに簡単にコードのいくつかの行に実装する方が簡単です。 – Daff