GAE + Java – Googleユーザーアカウントの統合
このチュートリアルでは、Google Java SDKUserServiceクラスを介して、GoogleユーザーアカウントをGAE + Javaプロジェクトに統合する方法を示します。
使用ツール:
-
JDK 1.6
-
Eclipse 3.7 + Eclipse用Googleプラグイン
-
Google App Engine Java SDK 1.6.3.1
1. GAEユーザーサービスの例
ユーザーがGoogleアカウントを使用してログインする場合は、ウェルカムメッセージと「Logout」リンクを表示します。それ以外の場合は、「Login」リンクを表示します。
package com.example.user; import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.api.users.User; import com.google.appengine.api.users.UserService; import com.google.appengine.api.users.UserServiceFactory; @SuppressWarnings("serial") public class LoginExampleServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); resp.setContentType("text/html"); resp.getWriter().println("GAE - Integrating Google user account
"); if (user != null) { resp.getWriter().println("Welcome, " + user.getNickname()); resp.getWriter().println( " LogOut "); } else { resp.getWriter().println( "Please LogIn "); } } }
Note
ログインページとログアウトページの両方がGAEによって自動的に処理されますが、ワークフローは異なります。
-
ローカルで実行– Googleアカウントのサインインページをシミュレートします(パスワード認証なし)。
-
GAEで実行–実際のGoogleアカウントのログイン画面にリダイレクトされます。
2. ローカルで実行する
プロジェクトを右クリックして、「Webアプリケーション」として実行します。 デフォルトでは、ポスト8888で実行されます。
Figure 2.1:アクセスURL:http://localhost:8888/loginexample
Figure 2.2:シミュレートされたGoogleのログイン画面。何かを入力します。認証はありません。
Figure 2.3:ようこそ、ログアウトリンクを表示します。
3. GAEにデプロイする
アプリケーションID「example-java」を使用して、Google AppEngineをデプロイします。
Figure 3.1 –アクセスURL:http://example-java.appspot.com/loginexample
Figure 3.2 –実際のGoogleアカウントのログイン画面にリダイレクトします。
Figure 3.3 –ログインが成功した場合は、http://example-java.appspot.com/loginexampleにリダイレクトします。
ソースコードをダウンロード
ファイルサイズが大きいため、GAE SDKの依存ライブラリはすべて除外されます。
ダウンロード–GAE-UserService-LoginExample.zip(8 KB)