Аутентификация пользователя с использованием Google App Engine и GWT - PullRequest
4 голосов
/ 22 декабря 2011

[Извините за мой английский, я итальянский, я сделаю все возможное]

Я пытаюсь реализовать функцию входа в мое веб-приложение для пользователей, которые имеютгугл аккаунт.Я следую этому руководству: 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

я ожидал какое-то перенаправление на страницу Google, которое попросило меня разрешить приложению использовать мои данные ... чтоя скучаю?Я что-то не так делаю?

1 Ответ

5 голосов
/ 22 декабря 2011

В Среде разработки вы просто увидите " Синюю коробку (, как вы сказали ) ", где вы можете ввести любой идентификатор электронной почты для входа в систему ....

Но когда вы развернете свое приложение на сервере Google App Engine, пользователь будет перенаправлен на реальную страницу входа в Google.

Разверните ваше приложение и попробуйте ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...