RkBlog

Hardware, programming and astronomy tutorials and reviews.

System użytkowników w Google App Engine

Opis wykorzystania kont Google w aplikacjach na platformie GAE.

Google App Engine zawiera komponenty umożliwiające integrację z usługami Google, takimi jak system użytkowników. Za jego pomocą możemy wprowadzić do naszych aplikacji system logowania/"rejestracji" oparty o konta Google. Poniżej prosty przykład. Zmień zawartość helloworld/helloworld.py na:
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):
  def get(self):
    user = users.get_current_user()

    if user:
      self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
      self.response.out.write('Witaj, ' + user.nickname())
    else:
      self.redirect(users.create_login_url(self.request.uri))

application = webapp.WSGIApplication(
                                     [('/', MainPage)],
                                     debug=True)

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()
Otwarcie w przeglądarce strony głównej spowoduje przekierowanie na lokalną wersję logowania na konto Google (wersja lokalna służy do testów i nie jest zintegrowana z kontami Google). W przypadku aplikacji działającej na serwerach GAE przekierowanie nastąpiło by na stronę kont Google, gdzie użytkownik mógłby się zalogować, lub zarejestrować, po czym automatycznie powrócić na stronę. Jeżeli wyślesz formularz zobaczysz dane z logowania.

Jeżeli użytkownik jest zalogowany funkcja get_current_user() zwróci obiekt User, zawierający podstawowe dane, a w przeciwnym wypadku - None. Jeżeli użytkownik nie jest zalogowany to przenosimy go do strony logowania:
self.redirect(users.create_login_url(self.request.uri))
. Podany jako argument self.request.uri służy do powrotu użytkownika na naszą stronę po pomyślnym zalogowaniu.
RkBlog

14 September 2008;

Comment article