問題タブ [refit]

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 に答える
408 参照

asp.net - Asp Net Core 2.1 で Refit を使用した OAuth2 フロー

さて、いくつかのセキュリティ エンドポイントを持つ Asp Net Core 2.1 を使用する WebApi があるので、次のようになります。

これは、誰かが私の API を呼び出したときに非常にうまく機能し、検証は問題ありません。認証プロバイダーとしてhttp://auth0.com/を使用しています。

ここで、 Authorization Bearer Token (JWT)を使用して、セキュリティ エンドポイントを持つ他の API も呼び出す必要があります。この場合に使用するフローはClient Credentialsです。だから、私はステップを持っています:

  1. 誰かが私の API を呼び出します
  2. 私の API は、認証プロバイダーとして auth0.com を使用して Jwt トークンを検証します
  3. 他のAPIを呼び出す必要があるので、Refit Libraryを使用しています

私の修理インターフェース:

そして、Bearer トークンをリクエストに追加するハンドラーを作成しました。

そして私のハンドラー:

これは機能しますが、手作業が多すぎてエラーが発生しやすいと思います。

  1. トークンを生成するために手動で実装する OAuth2 フローが多数あります (クライアント資格情報、暗黙的フロー、認証コード フローなど)。
  2. リフレッシュ トークン ロジックを実装する必要があります。
  3. 有効期限がまだ有効な場合は、トークンを再利用するロジックを実装する必要があります。代わりに、毎回新しいトークンを生成します (必要なく毎回 /token エンドポイントをヒットします)。

私は Spring Security フレームワークで多くの作業を行いましたが、「Spring、ここでは OAuth を使用しているので、すべての HTTP リクエストに Bearer トークンを挿入してください」と言うことができます。Spring は、構成で設定したすべてのリクエストをインターセプトし、OAuth フローが尊重されます (クライアント資格情報、認証コード フローなど)。それは透過的であり、時間を無駄にする必要はありません。

Asp Net Core 2.1 でそれを行う方法はありますか、それともトークン生成フローを手動で実装する必要がありますか?

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

xamarin - Xamarin API 呼び出しを修正するための SemiConst ヘッダーの追加

[更新しました]

コメントのジェイソンのおかげで、解決策を見つけることができました。クライアント ハンドラーを受け取る残りのサービスを作成するときに、新しい httpClient を指定できます。クライアント ハンドラーで SendAsync メソッドを上書きし、そこに呼び出しごとに必要な要求ヘッダーを追加します。以下のコード。

HttpClientHandler

クライアントの作成

[質問] ヘッダーの refit API 呼び出しにプラットフォームを追加したいのですが、メソッド呼び出しで渡す必要はありません。実行時に作成されるヘッダーをすべての API 呼び出しに追加する方法はありますか? これを試しましたが、定数ではないため機能しません。

個別の定数クラス