2017-06-02 16 views
0

とカスタム許可私は私のエンドポイントの1つにカスタム許可(BasePermission由来)を記述する必要があります方法はPOSTあるDjango Restフレームワーク。 JSONWebTokenAuthentication

場合、それはみんなのために開いているが(例えば、trueを返します)。.. しかし、メソッドがPUTまたはGETの場合、要求をクリアまたは拒否するかどうかを判断するには、JSONWebTokenAuthenticationと認証される必要があります。

一般的に、私は私のAPIViewクラス

authentication_classes = ([JSONWebTokenAuthentication])

しかし、どのように私はHTTP方法は私のカスタムでPUTまたはGETである場合には、ユーザーがすでにJSONWebTokenAuthenticationで認証されているかどうかをチェックしますかにこれを追加する方法を知っています許可クラス?どこかにIsJSONWebTokenAuthenticatedのようなものがありますか?

+0

yorのカスタム許可クラス – aliva

答えて

1

あなたはその後、あなたが

REST_FRAMEWORK = { 
    'DEFAULT_PERMISSION_CLASSES': 
     ('rest_framework.permissions.IsAuthenticated',), 
    'DEFAULT_AUTHENTICATION_CLASSES': 
     ('rest_framework_jwt.authentication.JSONWebTokenAuthentication', 
     'rest_framework.authentication.SessionAuthentication', 
     'rest_framework.authentication.BasicAuthentication',), 
     } 

、あなたのsettings.pyに追加する必要が

permissions.py

class CustomPermission(BasePermission): 

    def has_permission(self, request, view): 
     if (request.method =='POST' or (request.user and request.user.is_authenticated())): 
      return True 
     return False 

、あなたのビューのカスタム権限を作成する必要があります次に、ビューのpermission_classesにアクセス許可を追加します。

from .permissions import CustomPermission 

class YourView(APIView): 
    permission_classes = (CustomPermission,) 
+0

を書いてください。詳細な回答をありがとう。完璧に働いた。 – JasonGenX

+0

うん男...サポートをよろしくお願いします。 – zaidfazil

関連する問題