2016-10-24 11 views
2

私はAngularJSアプリケーションにOAuth 2.0を使用しています。 URLがアクセスされた上で、私は彼らにログインページを示していた場合ログインページからOAuth 2.0にデータを渡して戻すにはどうすればいいですか?

https://stic-scm-auto.snitco.com/fsHardSoft/createCase?sn=FOC0948Y1WB 

:ユーザーが他のアプリケーションの一つをクリックすると、私はこのようなパラメータを持つ私のアンギュラアプリケーションにリダイレクトしています。 (彼らはまだログインしていませんので)

後、私はここにそれらをリダイレクトしています:

https://cloudsso-test.snitco.com/as/ 

彼らはそこに上陸した後、私はURLログインにリダイレクト取得しています:

https://sso-test.snitco.com/autho/forms/CDClogin.html 

をログインが成功すると、アプリケーションのOAuthコールバックページにリダイレクトされます。

上記のすべてのゲートウェイにcreateCase?sn=FOC0948Y1WBパラメータを渡してデータを返すにはどうすればよいですか。

答えて

1

これは、OAuth 2.0 stateパラメータを使用することで実現できます。 OAuth 2.0準拠サーバーこのパラメータで送信する値は、処理が完了した後に返され、承認サーバーはアプリケーションにリダイレクトされます。

このパラメータの主な使用例は、元の要求をリダイレクト要求にリンクすることによってXSRFを防止し、クライアントアプリケーションがリダイレクトが攻撃者によって引き起こされたものではないことを確かめることです。

ただし、このパラメータを使用して、リクエストごとのカスタマイズを行うこともできます。この場合は、元のケース番号を知ることになります。詳細については、Using the State Parameterを参照してください。状態で渡された値に、XSRFを防ぐために後でチェックできるランダムなコンポーネントがあることを確認してください。必要なカスタムデータをこのnonce値に加えてください。

+0

はい、これは問題なく動作しています。私は 'oAuth'から州のパラメータを受け取った後、ヘッダーの' state'データをどのようにリセットするかの値を使用した後、もう一つの問題があります。なぜなら、ユーザログアウト後でさえ、ヘッダーに 'state'パラメータが存在するからです。 – 3gwebtrain

+0

あなたはまだURLに 'state'を持っているのでしょうか、それとも他の場所にあるのですか?正確な問題を示す別の質問を投稿するのが最善でしょう。 –

関連する問題