在本教程中,我们将向您展示如何通过Google Java SDK UserService类将Google用户帐户集成到GAE + Java项目中。
使用的工具 :
- JDK 1.6
- Eclipse 3.7 + Eclipse的Google插件
- Google App Engine Java SDK 1.6.3.1
1. GAE用户服务示例
如果用户使用其Google帐户登录,则显示欢迎消息和“ 注销 ”链接; 否则,显示“ 登录 ”链接。
package com.mkyong.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("<h2>GAE - Integrating Google user account</h2>");
if (user != null) {
resp.getWriter().println("Welcome, " + user.getNickname());
resp.getWriter().println(
"<a href='"
+ userService.createLogoutURL(req.getRequestURI())
+ "'> LogOut </a>");
} else {
resp.getWriter().println(
"Please <a href='"
+ userService.createLoginURL(req.getRequestURI())
+ "'> LogIn </a>");
}
}
}
注意
登录页面或注销页面均由GAE自动处理,但工作流程不同:
- 在本地运行-它将模拟Google帐户登录页面(无密码身份验证)。
- 在GAE上运行-它将重定向到实际的Google帐户登录屏幕。
2.在本地运行
右键单击该项目,然后以“ Web应用程序”运行。 默认情况下,它在8888之后运行。
图2.1 :访问URL:http:// localhost:8888 / loginexample
图2.2 :模拟的Google的登录屏幕,键入内容,不进行身份验证。
图2.3 :欢迎,并显示注销链接。
3.在GAE上部署
使用应用程序ID“ mkyong-java ”部署Google App Engine。
图3.1 –访问URL:http://mkyong-java.appspot.com/loginexample
图3.2 –重定向到实际的Google帐户登录屏幕。
图3.3 –如果登录成功,请重定向回http://mkyong-java.appspot.com/loginexample
下载源代码
由于文件较大,因此不包括所有GAE SDK依赖库。
下载它– GAE-UserService-LoginExample.zip (8 KB)
参考文献
翻译自: https://mkyong.com/google-app-engine/gae-java-integrating-google-user-account/