• Официальный сайт SDK
  • Сайт с примерами кода

Авторизация пользователей

Платформа App Engine предлагает несколько полезных сервисов, которые используют инфраструктуру Google и включены в поставку SDK. Один из таких сервисов (Users API) помогает подключить к приложению авторизацию пользователей и интегрировать его с аккаунтами Google. Вместо того, чтобы проходить отдельную регистрацию на сайте, ваши пользователи могут воспользоваться своими уже существующими аккаунтами.

Давайте добавим персонализацию пользователей к нашему приложению.

Использование авторизации

Откройте файл helloworld/helloworld.py снова и замените его содержимое следующим:

CmltcG9ydCB3c2dpcmVmLmhhbmRsZXJzCmZyb20gZ29vZ2xlLmFwcGVuZ2luZS5hcGkgaW1wb3J0IHVzZXJzCmZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQgaW1wb3J0IHdlYmFwcApjbGFzcyBNYWluUGFnZSh3ZWJhcHAuUmVxdWVzdEhhbmRsZXIpOgpkZWYgZ2V0KHNlbGYpOgp1c2VyID0gdXNlcnMuZ2V0X2N1cnJlbnRfdXNlcigpCmlmIHVzZXI6CnNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAndGV4dC9wbGFpbicKc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ0hlbGxvLCAnICsgdXNlci5uaWNrbmFtZSgpKQplbHNlOgpzZWxmLnJlZGlyZWN0KHVzZXJzLmNyZWF0ZV9sb2dpbl91cmwoc2VsZi5yZXF1ZXN0LnVyaSkpCmRlZiBtYWluKCk6CmFwcGxpY2F0aW9uID0gd2ViYXBwLldTR0lBcHBsaWNhdGlvbigKWygnLycsIE1haW5QYWdlKV0sCmRlYnVnPVRydWUpCndzZ2lyZWYuaGFuZGxlcnMuQ0dJSGFuZGxlcigpLnJ1bihhcHBsaWNhdGlvbikKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKbWFpbigpCg===

Обновите страницу приложения в своем браузере. Так как наше приложение находится в режиме отладки, оно перейдет на локальную версию интерфейса авторизации Google. Вы можете ввести любое имя пользователя, которое затем будет передано в объект User нашего приложения.

Однако, когда приложение будет опубликовано на платформе App Engine, пользователи попадут на реальную форму авторизации аккаунтов Google и затем (в случае успешного входа или регистрации) будут перенаправлены обратно на страницу приложения.

Users API

Давайте рассмотрим подробнее следующие части нового кода:

CnVzZXIgPSB1c2Vycy5nZXRfY3VycmVudF91c2VyKCkK=

Если пользователь уже прошел авторизацию, метод get_current_user() вернет информацию об объекте User. В противном случае будет возвращено значение None.

CmlmIHVzZXI6CnNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAndGV4dC9wbGFpbicKc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ0hlbGxvLCAnICsgdXNlci5uaWNrbmFtZSgpKQo==

После того, как пользователь прошел авторизацию, ему будет отображено персональное сообщение, содержащее краткое имя, которое он указал в своих учетных данных.

CmVsc2U6CnNlbGYucmVkaXJlY3QodXNlcnMuY3JlYXRlX2xvZ2luX3VybChzZWxmLnJlcXVlc3QudXJpKSkK=

Если пользователь еще не авторизован, webapp перенаправит его на страницу регистрации аккаунтов Google. Для того, чтобы пользователь после проведения авторизации, попал обратно в наше приложение, этот метод включает ссылку на нашу страницу (self.request.uri).

Для изучения всех возможностей Users API обратитесь к описанию Users API.

Далее...

Теперь наше приложение приветствует пользователей по имени. Давайте предоставим пользователям возможность общаться друг с другом.

Перейти к Управление формами через webapp.