class TEST(views.APIView): permission_classes = [IsAuthenticated] def post(self,request,*args,**kwargs): ID = self.request.data['username'] PW = self.request.data['password'] user = authenticate(username=ID, password=PW) login(self.request,user) return Response('OK')
Django REST frameworkにてデフォルトのユーザーモデルに対してログイン処理をするAPIを作成し、POST送信時にJWT認証を利用してログイン処理を行っています。このAPIは問題なく機能しています。更にdjango-axesを導入し、このAPIを利用したいと思いました。しかし、
user = authenticate(username=ID, password=PW)
の箇所で以下のエラーメッセージが出力されました。
Exception Type: AxesBackendRequestParameterRequired
Exception Value: AxesBackend requires a request as an argument to authenticate
requestが必要、と言われていますが、どのようにして修正すればよいでしょうか。
▽追記
JWT認証をしてからログイン認証をするのはおかしいと思われるので、permission_classes = [IsAuthenticated] をコメントアウトし、ヘッダーにJWTをつけないように修正しました。エラーメッセージは出力されなくなりましたが、**{"detail":"認証情報が含まれていません。"}**のエラーメッセージが出力され、ログインができなくなりました。引き続き調べます。
現在の状況
- AXES_ENABLED = True にしている
- ブラウザから入力されたusernameとpasswordをもとにJWTを取得
- JWT取得後、ログイン処理のPOSTを送信(ヘッダーにJWTを付加しない)
- 認証情報が含まれていない、というエラーメッセージがレスポンスされ、ログインができない
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。