Java を使用して Google App Engine のアプリケーションに Oauth 2 を使用したいのですが、その使用例が見つかりません。あなた。
3 に答える
私の2cはoauth2ライブラリを避けることです。もちろん、意見はさまざまですが、私にとっては、それらは非常に漏れやすい抽象化を提供するため、バックドアによって oauth の理解に引きずり込まれてしまいます。少なくとも私にとっては、知っておくべきことをすべて説明している 2 つのページを 1 時間かけて読み、他のすべてのページを慎重に避けることで、目的の場所にたどり着くことができます。
簡単に言えば、手順は次のとおりです。
アプリ/クライアント ID と必要なスコープを使用して認証 URL を呼び出します。「メール」スコープを含めます。
Google はユーザーにログインを案内し、(初めての場合は) 承認ダイアログを行います
- 最終的に、ブラウザは oauthcallback URL にリダイレクトし、認証コードを渡します。
- Google を呼び出して、認証コードを更新トークンに変換します。これにより、ユーザーの Google ID とアクセス トークンも返されます。
- ユーザーIDをセッションに保存して、後でユーザーを識別できるようにします
- データベース内の Google ユーザー ID と一緒に更新トークンを永続化する
その後の訪問では...
- セッションに Google ユーザー ID がある場合は、データベースから更新トークンを取得し、それを使用して必要に応じてアクセス トークンを生成できます。
- セッションに 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 の機能は適用されず、やや混乱します。
実際には、一部のドキュメントが信じさせるよりもはるかに単純です。私が言ったように、漏れのあるライブラリは役に立ちません。
このページには、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 クライアント/