2

おいしいリソースの認証/承認を設定する方法を知っています:リソースMetaクラスの設定を介して。トップレベルスキーマへのアクセスを認証/承認するにはどうすればよいですか?

たとえば、でリソースを認証/承認でき/api/v1/resourceますが、スキーマをで認証/承認するにはどうすればよい/api/v1ですか?

4

2 に答える 2

5

Tastypie のデフォルトのメカニズムを使用して、デフォルトでこれを行う簡単な方法はありません。api.pyファイルの中を見ると、top_levelメソッドに認証/承認メカニズムが適用されていないことがわかります。

あなたが望むものを達成するための最もクリーンな方法は、Api クラスを拡張し、top_levelメソッドをオーバーライドして、ユーザーが結果を見ることができることを確認することだと思います。ただし、これは、Api 自体が自動化と認証の方法を使用しないため、複雑すぎる可能性があります。そのため、Api の urls メソッドをオーバーライドして、top_levelそこにある定義を削除し、それをリソースの URL 内に配置することができます。

于 2012-09-09T14:41:32.040 に答える
2

この問題も解決しなければなりませんでした。アンナの提案のコード例を次に示します。

class ApiWithAuth(Api):
    def top_level(self, request, api_name=None):
        auth = MyAuthentication()
        r = auth.is_authenticated(request)
        if r != True:
            return r

        return super(ApiWithAuth, self).top_level(request, api_name)


api = ApiWithAuth(api_name='v2')
api.register(MyResource())
api.register(MyOtherResource())
...
于 2013-02-28T19:59:15.187 に答える