問題タブ [django-rest-auth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - Django Rest Framework / AngularJS - settings.py で LOGIN_REDIRECT_URL を設定しているにもかかわらず、ユーザーはログイン後にどこにもリダイレクトされません。
次のコードを URLs.py に追加する必要があります。
これを追加すると、ユーザーは「api-auth」URL にアクセスし、デフォルトの DjangoRestFramework ログイン インターフェイスを使用してログインできます。ログインに成功すると、ユーザーは「/test」にリダイレクトされます。これは、settings.py に次のコードがあるためです。
ユーザーが独自のカスタム インターフェイスを使用してログインできるようにする方法が必要でしたが、DjangoRestFramework のビルトイン コードを使用してユーザーをログインさせる方法が必要だったので、独自のテンプレートを作成しました。テンプレートのログイン フォームは、ポスト リクエストを
そして、ユーザー オブジェクト (JS のユーザー名とパスワードで構成される) を POST 要求と共に送信します。エラーは返されないので、ログインは成功していると思います。ただし、どの URL にもリダイレクトされません (「/test」にリダイレクトされることを期待していました)。
どこにもリダイレクトされない理由と、「/ test」にリダイレクトする方法を教えてください。
編集: フロントエンドで AngularJS も使用しています。
angularjs - Django Rest Framework - 間違った資格情報を使用してユーザーをログインしようとすると、ステータス コード 200 が返されるのはなぜですか?
これは私の URLs.py です:
ホームページに、ユーザーがユーザー名とパスワードを入力できるフォームがあります。送信ボタンがクリックされると、AngularJS は POST リクエストをユーザー オブジェクト (ユーザー名とパスワード) と共に「api-auth/login/」に送信します。
ユーザーが間違ったユーザー名とパスワード (ユーザー名とパスワードが存在しないか一致しない) を送信すると、Django Rest Framework は 204 No Content、404 または 401 Unauthorized ではなく 200 OK を返します (この投稿では、401 と表示されます)。は、返される正しいステータス コードです:ユーザーが間違ったユーザー名/パスワードでログインしようとしたが、正しい形式でログインしようとした場合に返される適切な HTTP ステータス コードは何ですか? )。
ここによると: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.htmlのセクション 9.5 POST には、「この場合、200 (OK) または 204 (No Content) のいずれかが適切な応答です。結果を説明するエンティティが応答に含まれているかどうかによって異なります。」
エラーを処理し、データが存在する場合はデータをログに記録します (JS で console.log(data) を実行しました)。結果。
では、なぜ DjangoRestFramework は 204 No Content (または 404 または 401、私がリンクした他の SO 投稿によると返されるべきもの) ではなく 200 を返すのでしょうか?
django - DjangoRestFramework / Django クラス ベースのビュー - 403 エラーが発生した場合にログイン ページにリダイレクトする方法
これらは私の見解です:
URL に移動してこれらのビューのいずれかにアクセスすると、次のようなデフォルトの DjangoRestFramework ページが表示されます。
デフォルトの DRF ページを表示する代わりに、ログイン ページにリダイレクトするように変更することはできますか? (ログインページのURLは「/login」です)。
注: 1 つのビューに Django TemplateView を使用し、もう 1 つのビューに DRF APIView を使用していますが、ログインせずに URL にアクセスしようとすると、どちらも DRF のデフォルト 403 ページにリダイレクトされます。
django - Django-rest-auth 基本認証エラー {"パスワード":["(このフィールドは必須です"]}
私はdjango-rest-authとapisが初めてです。レスト認証を作成するのは初めてで、認証ヘッダーとコンテンツ タイプにあまり詳しくありません。
/login/
次のように基本認証でユーザーを認証しようとすると、その理由を理解しようとしています。
私はこのエラーメッセージを受け取りました:
{"パスワード":["(このフィールドは必須です"]}
次のように本文でユーザー名とパスワードを渡す場合:
私は鍵を手に入れました:
{"キー":"b5c0f3a9c7b2fc2f58a74b25f816e2968c64712f"}
なぜこれが起こっているのですか?
/user/
また、同じことを試してもエラーが発生せず、ユーザーモデルがシリアル化されたのはなぜだろうか
私が理解できる唯一の違いは、/login
私はPOSTを使用しており、/user/
GETは
誰か私にこれを説明できますか?
読んでくれてありがとう!
django - Django Rest Model シリアライザーとモデル継承
アプリでユーザーのカスタムモデルを作成します。アプリケーション コンポーネントは次のとおりです。
- ジャンゴ1.8
- ジャンゴ REST フレームワーク 3.2.4
- Django-allauth 0.23.0
- Django-rest-auth 0.5。
ユーザーモデルのコードはpythonfiddle.comで見ることができます。Django-rest-auth 登録エンドポイントに移動すると、次のエラーが表示されます。
ValueError at
/rest-auth/registration/
抽象モデルで ModelSerializer を使用できません。
これは、Django-rest-auth に関連する設定です。
この問題を解決するにはどうすればよいですか?