問題タブ [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.

0 投票する
0 に答える
72 参照

django - 非ユーザーベースのエンティティの認証

私のアプリケーションには、バックエンドにリクエストできる 2 つのモデルがあります。1 つはdjango.contrib.auth.models.Useruse に基づいてrest_framework.authentication.TokenAuthenticationおり、2 つ目は という名前のエンティティHubです。

Authorization: HubToken <TOKEN>Hubs リクエストの認証に使用しますが、すべてのエンドポイントで手動で処理します。つまり、リクエストが送信元か送信元かを確認し、UserさらにHubいくつかの手順を実行する必要があります。

カスタム認証を実装できることはわかっていますが、それはすべてユーザーベースです。のカスタム認証を作成するにはどうすればよいHubですか?

0 投票する
1 に答える
69 参照

django - all_auth/rest_auth ユーザーと何らかのモデルを関連付ける方法。クッキー/トークン付き

Angular と共に all_auth と rest_auth を使用しています。キャンペーンというモデルがあります

としてのビュー

API 経由で user_id を渡したくありません。ユーザーの詳細を取得して request.data に挿入するにはどうすればよいですか

0 投票する
0 に答える
301 参照

jwt - PAW で JWT トークンを設定できません。POSTMAN で機能します

POSTMAN を使用してヘッダーに JWT トークンを含むリクエストを送信できました。Paw を使用するように切り替えたいのですが、エラーで返されました

認証資格情報が提供されませんでした。

以下は、 Authorization ヘッダーに対して試したものです。

郵便配達員(これは機能します)

  1. Authorization: Bearer [token]
  2. Authorization: JWT [token]
  3. Authorization: [token]
  4. Authorization: Token [token]

何かアイデアはありますか?

0 投票する
1 に答える
4844 参照

django - django-rest-auth: Google でのソーシャル ログイン

django-rest-auth のドキュメントでは、Facebook の統合について説明していますが、これには興味がありません。私の懸念は、Google 経由でソーシャル ログインを提供することです。私はこれをかなり長い間試してきましたが、他の誰かがこれをどのように行ったかについてのドキュメントを持っているかどうか疑問に思っています...大まかなスケッチでも役に立ちます. これまでのところ、この検索の結果は見つかりませんでした。私はほとんどそこにいますが、Django Rest Framework (DRF) ブラウズ可能な API で動作させることができません。

ここに私がこれまでに持っているものがあります: django-rest-auth github ページで提供されているデモ プロジェクトから始めて、ソーシャル ログイン テンプレートの HTML ページを変更して、「コード」と「access_token」の両方ではなく、「コード」入力のみを要求するようにしました。 . 有効なコード (Google の認証エンドポイントへの別のリクエストによって取得) を提供すると、これは正常に機能します。ブラウズ可能な API は、応答に「キー」(ユーザー用のアプリケーションの API トークン) を含む通常の Web ページをレンダリングします。django管理者を確認すると、すべてが機能しました-ユーザーがログインしている、電子メールが認証されているなど。これまでのところ良好です。

問題は、「コード」を提供する開始点と、最初にそのコードをグーグルから取得する方法です。以前に allauth パッケージを (成功して) 使用したときは、リンクをクリックするだけで、OAuth2 フロー全体を「見えないように」実行できました (つまり、コードを要求し、そのコードを使用してアクセス トークンを取得し、アクセス トークンを使用してユーザーの Google アカウント情報を取得します)。

そのシームレスなフローを再作成する (つまり、コードから始めない) ために、OAuth2 フローを中断し、Google から返されたコードを「インターセプト」して、そのコードを rest-auth ソーシャル ログイン API に POST できると考えました。allauth.socialaccount.providers.oauth2.views.OAuth2CallbackViewそのために、dispatch メソッドをオーバーライドし てカスタムを作成しました。

通常、このメソッドは、最初に Google の認証エンドポイントに提供したコールバック URI に Google が GET リクエストを送信したときに呼び出されます。このオーバーライドにより、そのコールバックで Google から返されたコードを正常に解析できます。POST リクエストは機能し、resp._content フィールドにユーザーのキーが含まれています。ただし、最終的には、DRF browsable API で意図したビューを生成できません。

コールスタックを調べてみると、rest_framework.views.APIView.dispatchが type のオブジェクトを返すことがわかりましたrest_framework.response.Response。ただし、requests.post上記のメソッドが完了すると、 type のインスタンスが返されますrequests.models.Response。その結果、適切な属性がなく、django ミドルウェアで失敗します。たとえば、acceptable_renderer属性も「get」メソッドもありません (これは で使用されdjango.middleware.clickjacking.pyます)。requests.models.Responseおそらく、これらの要件を( ) インスタンスに追加することもできrpますが、このハックはさらに厄介なものになります。

ご協力いただきありがとうございます。

0 投票する
1 に答える
1428 参照

django-rest-framework - django restフレームワークのseriliazers.pyおよびviews.pyからdjangoのテンプレートからrestサービスを呼び出す方法

DRF とシリアライザーを使用して、django でユーザーをロックおよびロック解除するための API エンドポイントを作成しました。

ユーザーをロックしてユーザーのロックを解除するために、django テンプレートでこの残りのサービスを呼び出したいと思います。

ここにテンプレートのコードがあります

<a href="{% url 'rest-auth/rest_lock/' %}?username={{user.username}}" class="table-btn"><span class="glyphicon glyphicon-lock" /></a> {% else %} <a href="{% url 'rest-auth/rest_unlock/' %}?username={{user.username}}" class="table-btn"><span class="glyphicon glyphicon-briefcase" /></a>

問題は、上記の Web サービスを呼び出していますが、その Web サービスでユーザーをロックできないことです。

これが残りのサービスのコードです。

シリアライザーでは:

views.py で:

urls.py で

)

私が作成した残りのサービスは、REST クライアント (RESTEASY、POSTMAN など) からユーザー名のデータを投稿するときに完全に機能しますが、ユーザー名のテンプレートから値を送信するときに、サービスを呼び出して実装することができます。誰でもこれを機能させる方法を教えてもらえますか???

0 投票する
1 に答える
568 参照

angularjs - AngularJs と Django Rest バックエンドを使用してユーザーが認証されているかどうかを確認するには?

休みのない通常のdjangoプロジェクトでは、テンプレートで次のようなことをしました:

AngularJs を使用して同じことを行うにはどうすればよいですか? ログイン方法を適切に設定していませんが、django-rest-authを使用しているため、管理パネルからログインしてテストしています。どんな助けでも大歓迎です!