[抱歉我的英语不好,我是意大利人,我会尽力而为]
我正尝试在我的网络应用程序中为拥有 Google 帐户的用户实现登录功能。我正在遵循本指南:http://code.google.com/intl/it-IT/webtoolkit/doc/latest/tutorial/appengine.html#user .
在“LoginServiceImpl.java”中
[...]
if (user != null) {
loginInfo.setLoggedIn(true);
loginInfo.setEmailAddress(user.getEmail());
loginInfo.setNickname(user.getNickname());
loginInfo.setLogoutUrl(userService.createLogoutURL(requestUri));
} else {
loginInfo.setLoggedIn(false);
loginInfo.setLoginUrl(userService.createLoginURL(requestUri));
}
[...]
调用
userService.createLoginURL(requestUri);
返回这样的字符串:
/_ah/login?continue=http%3A%2F%2F127.0.0.1%3A8888%2FGoogleAccounts.html%3Fgwt.codesvr%3D127.0.0.1%3A9997
这意味着,为了允许用户登录,我必须将他重定向到这里
http://127.0.0.1:8888/_ah/login?continue=http%3A%2F%2F127.0.0.1%3A8888%2FGoogleAccounts.html%3Fgwt.codesvr%3D127.0.0.1%3A9997
但是这样做,我会看到一个白色背景和一个蓝色框的白色页面:
http://img528.imageshack.us/img528/8720/formy.png
无论我放在那里的电子邮件,即使是格式不正确的电子邮件,我都会被重定向到我的主页并且似乎已成功登录,有类似的东西
if(user != null) {
System.out.println("email = "+user.getEmail());
System.out.println("nickname = "+user.getNickname());
System.out.println("userId = "+user.getUserId());
System.out.println("FederatedIdentity = "+user.getFederatedIdentity());
System.out.println("AuthDomain = "+user.getAuthDomain());
System.out.println("link to logout = "+userService.createLogoutURL("http://127.0.0.1:8888/GoogleAccounts.html?gwt.codesvr=127.0.0.1:9997"));
}
导致
email = blablabla
nickname = blablabla
userId = 12654892720623673200
FederatedIdentity = null
AuthDomain = gmail.com
link to logout = /_ah/logout?continue=http%3A%2F%2F127.0.0.1%3A8888%2FGoogleAccounts.html%3Fgwt.codesvr%3D127.0.0.1%3A9997
我期待某种重定向到要求我授权应用程序使用我的数据的谷歌页面...我错过了什么?我做错了什么吗?
最佳答案
在开发环境中,您只会看到一个“Blue Box (as you said)”您可以在其中输入任何电子邮件 ID 以登录....
但是当您在 Google App Engine 服务器中部署您的应用程序时,用户将被重定向到实际的谷歌登录页面。
部署您的应用并试用...
关于google-app-engine - 使用 Google App Engine 和 GWT 进行用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8603085/