0

Django RESTフレームワークでJWTトークンを使用します。 ここにJWTトークンを格納し、JWTトークンを自分のDBに格納します。私はこのAPIをモバイルアプリに使用していたからです。ここでDjango RESTフレームワークでDBにJWTトークンを格納する方法

はJWTトークンに

ここ
class LoginView(APIView): 
    permission_classes = [permissions.AllowAny] 

    def post(self, request, format=None): 
     """ 
     Return a Valid token if username and password 
     is valid for a given client 
     """ 
     try: 
      username = request.data['username'] 
      password = request.data['password'] 
      user = authenticate(username=user.username, password=password) 
      if user is not None: 
       if user.is_active: 
        login(request, user) 
        jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER 
        jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER 

        payload = jwt_payload_handler(user) 
        token = jwt_encode_handler(payload) 

        ind = Individual.objects.filter(user_id=user.id).first() 
        ind.login_flag = True 
        ind.save() 

を作成し、私は郵便配達にJWTトークンの検証と適切な作業

その

class LogoutView(APIView): 
    permission_classes = (IsAuthenticated,) 
    authentication_classes = (JSONWebTokenAuthentication,) 

    def post(self, request, format=None): 
     ....... 
     ....... 

JWTトークンの検証を使用していました。しかし、私はどこにストアトークンと私のDBにJWTトークンを格納する方法をしたいです。

+0

(注ヘッダ内のJWTの一部を見逃していません)私たちはログインユーザー用に作成しました。私たちはログインしているユーザーと彼のdevice-idを追跡するだけです。 –

答えて

0

@Vijeshが彼のコメントで述べたように、JWTトークンの格納は正しいアプローチではありません。 DRFのドキュメント、TokenAuthentication内蔵のスキームとは異なり

から、JWT認証 はトークンを検証するためにデータベースを使用する必要はありません。

JWTトークン認証用にdjango-rest-framework-jwtパッケージを使用しているためです。 apisを使用して、トークンを取得またはリフレッシュすることもできます。

ユーザ名&のパスワードを取得またはリフレッシュできない場合は、AuthorizationヘッダーのJWTトークンで保護されたURLを使用する必要があります。ログイン後、受け取ったトークンを持つAuthorizationヘッダーを構成します。常に各トークンに対して設定有効期間が存在することになるように適切な方法ではないデータベースにJWTトークンを格納

Authorization: JWT <your_token> 

カールサンプル

curl -H "Authorization: JWT <your_token>" http://localhost:8000/protected-url/ 
+0

私は同じドキュメントを使用しました。セッションのトークンストアと私はモバイルアプリケーションのためにこのAPIを使用しているときには動作しません。モバイルでは利用できないセッションなので –

+0

保護されたURLを使用しましたか?ユーザー名とパスワードを入力できないシナリオでは、認証ヘッダーのJWTトークンで保護されたURLを使用する必要があります。ログイン後、保護されたURLのヘッダーにトークンを追加する必要があります。承認:JWT

関連する問題