4

Java を使用して Google App Engine のアプリケーションに Oauth 2 を使用したいのですが、その使用例が見つかりません。あなた。

4

3 に答える 3

10

私の2cはoauth2ライブラリを避けることです。もちろん、意見はさまざまですが、私にとっては、それらは非常に漏れやすい抽象化を提供するため、バックドアによって oauth の理解に引きずり込まれてしまいます。少なくとも私にとっては、知っておくべきことをすべて説明している 2 つのページを 1 時間かけて読み、他のすべてのページを慎重に避けることで、目的の場所にたどり着くことができます。

簡単に言えば、手順は次のとおりです。

  1. アプリ/クライアント ID と必要なスコープを使用して認証 URL を呼び出します。「メール」スコープを含めます。

  2. Google はユーザーにログインを案内し、(初めての場合は) 承認ダイアログを行います

  3. 最終的に、ブラウザは oauthcallback URL にリダイレクトし、認証コードを渡します。
  4. Google を呼び出して、認証コードを更新トークンに変換します。これにより、ユーザーの Google ID とアクセス トークンも返されます。
  5. ユーザーIDをセッションに保存して、後でユーザーを識別できるようにします
  6. データベース内の Google ユーザー ID と一緒に更新トークンを永続化する

その後の訪問では...

  1. セッションに Google ユーザー ID がある場合は、データベースから更新トークンを取得し、それを使用して必要に応じてアクセス トークンを生成できます。
  2. セッションに Google ユーザー ID がない場合は、上記の手順を実行してください。今回は、Google はユーザーに承認を求めるプロンプトを表示しません (既に承認されているため)。更新トークンは空白になります (既に保存されているため)。

知っておくべきことはすべて、oauth プレイグラウンド ページ内にあります。ボタンをクリックすると、上で概説した手順に従っていることがわかります。

次に、考えられるエラー状況に対処する必要があります。

  • ユーザーが許可を拒否
  • ユーザーが許可を撤回する
  • Google は更新トークンを期限切れにしたため (頻繁に発生します)、再認証する必要があります
  • タイムアウト

読む必要がある 2 つのページは、https: //developers.google.com/accounts/docs/OAuth2WebServer とhttps://developers.google.com/oauthplayground/の oauth プレイグラウンドです

URL を作成し、リフレッシュ トークン (単なる文字列) を保存し、JSON 応答を解析する方法を知っている限り、必要なものはすべてそれらのページにあります。を除外する ...

すべてのドキュメントは、セッションでユーザー ID を保持する必要性をスキップしているため、誰がアプリにアクセスしているかがわかります。AppEngine を使用している場合、別の appengine ログインを使用する appengine のサンプル コードに戸惑うかもしれません。それを無視します。oauth を使用してユーザーを認証するため、appengine の機能は適用されず、やや混乱します。

実際には、一部のドキュメントが信じさせるよりもはるかに単純です。私が言ったように、漏れのあるライブラリは役に立ちません。

于 2013-09-03T09:24:53.207 に答える
0

このページには、Java 用の OAuth 2 クライアントおよびサーバー ライブラリがいくつかリストされています: http://oauth.net/2/

Apache Otlu を使用するためのクイックスタート ドキュメントは次のとおりです: https://cwiki.apache.org/confluence/display/OLTU/OAuth+2.0+Client+Quickstart

Google API に (クライアントとして) アクセスしている場合は、OAuth と API のセットアップを行う Java 用の Google クライアント ライブラリを使用できます: https://code.google.com/p/google-api -java クライアント/

于 2013-09-02T15:54:50.907 に答える