0

GoogleのOAuthメソッド(https://developers.google.com/accounts/docs/OAuth2Login)によって返されるような、WebアプリのURLでOAuth2認証コードを使用するときに問題が発生しました。

私はグーグルリダイレクト方法を使用しています。ここで、client_idとredirect_uriを渡して、ユーザーをGoogleURLにリダイレクトします。ユーザーが認証し、認証コードがredirect_uriに次のように渡されます。

問題は、アクセスコードがページのURLに残っているため、ユーザーがURLをブックマークまたは投稿すると、無効な認証コードが送信されることです。

例えば:

http://myapp.com/?code=kACASDSDdAS81J5B8M_owCyUNgV46XdZaqBBMh4T8OJFEKPRrgN7gtiFOcMW5Fv3gk

このケースを処理するための最良の方法は何ですか?理想的には、認証コードはプレーヤーには表示されないため、POST本文で送信したいですか?

ユーザーをリダイレクトするためにGoogleAppEngine(使用しているプラ​​ットフォーム)を少し見てみましたが、リダイレクトでPOST本文を送信できないようです。

4

1 に答える 1

0

URLクエリパラメータに認証コードを使用してユーザーがアプリに誘導されたら、次のことを行う必要があります。

1)HTTPをGoogleのOAuth 2.0トークンエンドポイントにPOSTして、アクセストークンの認証コードを交換し、そのアクセストークンを必要に応じて保存します(データストア、memcacheなど)

2)ユーザーを。のないURLにリダイレクトします?code。POST本文をリダイレクトで送信することはできません(HTTPでは許可されていません)が、API呼び出しを行うためにアクセストークンをサーバー側に保存する場合は必要ありません。

トークンをクライアント側でアクセス可能にする必要がある場合は、次のことができます。

a)リダイレクトと一緒にCookieとして送り返します(暗号化することはできますが、クライアントに公開します)または

b)リダイレクトを行う代わりに自動送信するためのJavaScriptを使用してHTMLフォームを生成します。ちょっと醜いですが、一般的です。

于 2012-06-19T08:54:50.587 に答える