2017-08-07 9 views
0

私たちはDjangoで独自のソリューションを用意しており、作成したAPIがサーバーに当たってdjangoコードが機能するようにDRF & JWTを使用しています必要なCRUD操作を行う)。Djangoはサードパーティー用のAPIを提供します

は今、私たちは彼らのソリューションは、直接私たちのAPIにアクセスできるように、サードパーティのユーザーによって消費されるオプション当社のAPIを持っていることを計画しています。

APIがGoogle独自のAndroidアプリまたはJavaScriptコードでヒットしたのか、サードパーティのコードでヒットしたのかを知る必要があります(サードパーティがGoogle APIにヒットした回数)。 私たちはこれを解決できますか?

私たちが第三者向けに別々のAPIを提供し、独自のAPIを使用する場合、javascriptを使用して、内部APIを読み、乱用することができます(つまり、パーティコード)。

私たちが読んで役立つだろうを通じて学ぶことができるように私たちは、正しい方向に始めるために、任意の一般的なヘルプ。

答えて

0

あなたはアクセス権(http://www.django-rest-framework.org/api-guide/permissions/)およびスロットリング(http://www.django-rest-framework.org/api-guide/throttling/)に探してする必要があります。特定のユーザエージェント(例:カール、アンドロイドなど)をブロック/スロットルすることができます。

from rest_framework import permissions 

class UserAgentBlacklist(permissions.BasePermission): 
    message = 'Please set a custom user agent when using scripts with our API.' 

    def has_permission(self, request, view): 
     user_agent = request.META['HTTP_USER_AGENT'] 
     for agent in ['libcurl', 'Python-urllib', 'python-requests']: 
      if user_agent.startswith(agent): 
       return False 
     return True 
+0

私はすでにJWTパーミッションシステムを使用しています。しかし、私たちのアンドロイドアプリからAPI呼び出しを分離する方法(サードパーティコードの呼び出しから私たちのJSコードから)があるかどうか知りたいのですが?スロットルについては、ユーザーがAPIを使用してソリューションにアクセスした回数については考慮しません。私は実際のカウントが必要です。 – Sayantan

+0

特定のクライアントをブロックするためのアクセス許可の使用方法を説明するサンプルコードでコメントを更新しました。 –

+0

今、アンドロイドを使用するサードパーティのアプリと、アンドロイドを使用する独自のアプリがあるとしましょう。これらの2つはどのように差別化されますか?これは役に立ちます。 – Sayantan

関連する問題