0

.NETアプリを作成していますが、画面の1つに、OAUTHの使用に接続するためのさまざまなサービスがあります。

2つの例はFacebookとInstagramです。ユーザーが自分のアプリにこれらのアプリケーションへのアクセスを許可することを許可します。すべてが個別に正常に機能していますが、FacebookとInstagramの両方がクエリ文字列に「コード」を返すため、コールバックでユーザーが選択したプロバイダー(サービスごとにボタンをクリックするだけです)を知る良い方法がわかりません。これは、OAUTH認証の最終ステップを実行するために使用されます。

各サービスのボタンクリックをセッションに保存しようとしましたが、プロバイダーの承認URLへのリダイレクトと、コールバックでのアプリへの復帰時にセッションがワイプされます(Redirect(url、false)を使用しても、セッションは引き続き有効です)クリアされる)。したがって、基本的に、認証が戻ってくるサービス(FacebookまたはInstagram)でユーザーがクリックしたボタンはわかりません。

ユーザーが私のアプリを認証し、コールバックが行われた後に知っておくべき考えやアイデアは、どのプロバイダーがコードビハインドでそのコールバックを送ってくれたかを知る方法ですか?

4

2 に答える 2

3

それらを別のコールバック URL に移動させることはできませんか? 同じ URL に移動する必要がある理由はありますか?

于 2012-09-06T05:02:22.463 に答える
0

この情報を OAuth 2.0 Authorization Request のstateパラメーター(CSRF 攻撃を防ぐために既に使用している必要があります) に含めることができます。たとえば、 a_fbまたは_igを追加します。

ただし、より便利な方法は、異なるコールバックを使用することです。

于 2012-09-06T12:58:33.157 に答える