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)