2016-12-29 2 views
1

JWTトークン認証を使用してユーザーの詳細を取得しようとしています。私はBasicAuthenticationとJsonWebToken認証を使用してそれらを得ることができます。私はJWTを使用して詳細を取得しようとしています。django restフレームワークでjwt認証を使用してユーザーの詳細を取得する方法は?

class PermissionView(APIView): 
    permission_classes = [IsAuthenticated] 
    authentication_classes = [BasicAuthentication,JSONWebTokenAuthentication] 

    def get(self, request,format=None): 
     data = { 
      'username': request.user.username, 
      'password':request.user.password, 

     } 
     return Response(data) 

のURL:

url(r'^api-token/$', obtain_jwt_token), 

出力:生成 1)トークン

2)基本認証とJsonWebTokenauthentication]

私はを使用して、ユーザーの詳細情報を取得ユーザーの詳細や認証を取得しようとしていますJWTトークンを使用してユーザーの詳細を表示します。ヘルプは高く評価されますか?

+0

なぜユーザーのパスワードを取得しますか? – alphiii

答えて

-1

私たちは何かを理解するためにDjangoの流れにJWTを再訪してみましょう:

  1. ユーザーは自分のユーザー名とパスワードを使用して、URL APIトークン-AUTHからトークンを要求します。
  2. jwtはユーザーを認証し、その後使用するトークンを返します(これはJWTフレームワークによって行われます)
  3. 次にトークンを送信すると、JWT認証クラスによってトークンが認証され、要求が入力されます後でビューで使用できるように、ユーザー情報が必要です。

結論:要求オブジェクトの現在APIを要求しているユーザーがrequest.userであることがわかります。

+0

ここに記述されているミドルウェアを含めても、自分のビューに 'request.user'を使用すると、私のユーザーはJWT認証で常に匿名です:https:/ /あなたは自分自身が不足していると思うので、self.request.user.usernameのように見えます。 /github.com/GetBlimp/django-rest-framework-jwt/issues/45 どのようにミドルウェアをセットアップしましたか? 'request.user'に値を設定するために必要なものは何ですか?ありがとう! – nbeuchat

+0

ミドルウェアの設定に特別なものはありません。私はJsonWebToken認証(あなたが言ったもの)とあなたの視点でのJWT認証の違いは何か分かりません。基本的にJWTはjson Webトークンの略です。私はユーザー名とパスワードを使ってユーザーを認証するために投稿要求を使用し、要求から返されたトークンを保存し、後で要求のヘッダーにこのトークンを追加します。 – Myonaiz

関連する問題