なぜクッキーを使用できないのか分かりません。ユーザーを認可サーバーにリダイレクトする前に、現行のURLをCookieに保管してください。 ASがユーザーをredirect_uri
にリダイレクトすると、そのページはCookieに格納されているURLに別のリダイレクトを行います。
しかし、リクエストに「最後のページURL」を追加したバージョンが好きです(リストの4番目の要素)。 GoogleではOAuth設定でワイルドカードを使用できないようだから、代わりにstate
パラメータを使用できます。
state
RECOMMENDED. An opaque value used by the client to maintain
state between the request and callback. The authorization
server includes this value when redirecting the user-agent back
to the client. The parameter SHOULD be used for preventing
cross-site request forgery as described in Section 10.12.
あなたのリダイレクトURLを構築するときは、ちょうどそうのようなstate
パラメータ設定、::RFC 6749 - The OAuth 2.0 Authorization FrameworkからあなたのOAuthの流れに応じて、
https://accounts.google.com/o/oauth2/v2/auth
?client_id=MY_CLIENT_ID
&redirect_uri=http://example.com/oauth-redirect_uri
&scope=REQUESTED_SCOPES
&state=http://example.com/last-page-the-user-loaded
を、認証サーバがそのURLにユーザーをリダイレクトしますやや成功した認可を受けて次のようになります。
http://example.com/oauth-redirect_uri
?code=CODE
&state=http://example.com/last-page-the-user-loaded
その後、state
パラメータを処理することができますあなたのサーバーそれに応じてユーザをリダイレクトする。
あなたの答えのためのおかげで@パオロ私はこれを試し、それが働いたかどうかを知らせる。 –
ありがとうございました状態パラメータの解決策はGoogleのログインのために働いた..また、Facebookのログインにそのようなパラメータですか?そこに州のパラメータが見つかりません –
彼らはOAuthプロトコルに従ってそれを完全に実装していれば、これはGoogleと同じように動作するはずです。しかし、私はFacebookのログインについて何も知らない、申し訳ありません。 – paolo