10

Google Oauth 2.0 ドキュメントによる状態パラメータ:

応答の受信時にアプリケーションに役立つ可能性のある状態を示します。Google 認証サーバーはこのパラメーターを往復するため、アプリケーションは送信した値と同じ値を受け取ります。考えられる用途には、ユーザーをサイト内の正しいリソースにリダイレクトすること、ナンス、クロスサイト リクエスト フォージェリの緩和などがあります。

元の oauth リクエストがどのサブドメインから開始されたかを知る手段として、状態パラメーターを使用したいと思います。しかし、redirect_state パラメーターは、「承認されたリダイレクト URI」の 1 つの一部として登録する必要があるようです。そうでない場合は、次のようになります。

エラー: redirect_uri_mismatch リクエストのリダイレクト URI: http://my_server.com/complete/google-oauth2/?redirect_state=2が登録済みのリダイレクト URI と一致しませんでした

承認されたリダイレクト URI にすべての可能な redirect_state 値を登録する必要がないソリューションが必要です。これは保守性が低いためです。アイデア?

4

1 に答える 1

18

パラメータの名前はstate(redirect_state ではありません)!

Google ドキュメントによるサンプル OAuth リクエストは ->

https://accounts.google.com/o/oauth2/auth?
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&
state=%2Fprofile&
redirect_uri=https%3A%2F%2Foauth2-login-demo.appspot.com%2Fcode&
response_type=code&
client_id=812741506391.apps.googleusercontent.com&approval_prompt=force

Stateパラメータとパラメータに注意してredirect_uriください。私はあなたが2つを混同したと思います。

編集 - Google によるこのリンクを参照してください。状態パラメーターと Web 要求の構築についての適切な説明があります。

于 2013-05-07T05:43:57.470 に答える