Как работает служба поддержки пользователей Google App Engine? - PullRequest
6 голосов
/ 13 декабря 2010

Мне просто любопытно, как работает пользовательский сервис Google App Engine. Насколько я понимаю, пользователь, вошедший в систему, хранится в файле cookie. Чтобы получить cookie, необходимо иметь объект запроса http сервлета (по крайней мере, для сервлета java). Но пользовательский интерфейс API не требует какого-либо http-запроса сервлета в качестве входных данных, так как он получает cookie, чтобы проверить, вошел ли пользователь в систему или нет?

Тим

Ответы [ 2 ]

3 голосов
/ 14 декабря 2010

А как насчет последующих звонков? Например (продолжение с вашего пункта 4)

  1. Пользователь вызывает сервлет http://app.appspot.com/dosomethingelse

В сервлете dosoemthingelse я снова могу вызвать UserService следующим образом

UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
String userId = user.getUserId();

Как этот экземпляр userService получает файл cookie, чтобы узнать, кто в данный момент вошел в систему?

3 голосов
/ 13 декабря 2010

Во время запросов пользовательская настройка обрабатывается реализацией сервлета Google.

[I] f пользователь вошел в систему и получил адрес электронной почты пользователя или идентификатор OpenID с помощью стандартного API сервлета с помощью метода getUserPrincipal () объекта запроса.

Во время процесса входа служба работает с использованием перенаправлений, аналогично OpenID или OAuth. Посмотрите URL во время процесса входа в систему.

  1. Пользователи перенаправляются на URL, который обрабатывается App Engine в вашем приложении, что-то вроде:

    http://app.appspot.com/_ah/login?continue=http://app.appspot.com/dosomething

  2. Обработчик входа перенаправляет в службу входа Google, что-то вроде:

    https://www.google.com/accounts/ServiceLogin?service=ah&continue=http://app.appspot.com/_ah/login%3Fcontinue%3Dhttp://app.appspot.com/dosomething&ltmpl=gm&ahname=Your+App+Name&sig=hf3322hdsk98fd8fh3u29hfh24as

  3. Вы входите, затем Google перенаправляет вас обратно в обработчик входа в движок приложения:

    http://app.appspot.com/_ah/login?continue=http://app.appspot.com/dosomething

    Когда Google перенаправляет, некоторые параметры запроса будут переданы обработчику входа в App Engine, а встроенный обработчик входа установит cookie.

  4. Затем вы будете перенаправлены на указанный вами URL-адрес или с того места, с которого вы «начали». Что-то вроде:

    http://app.appspot.com/dosomething

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