Python 2 wird von der Community nicht mehr unterstützt. Wir empfehlen die Migration von Python 2-Anwendungen zu Python 3.

Nutzer authentifizieren

In diesem Teil der Anleitung zum Python-Gästebuch-Code wird beschrieben, wie ein Nutzer authentifiziert und eine benutzerdefinierte Begrüßung für den angemeldeten Nutzer angezeigt wird.

Diese Seite ist Teil einer mehrseitigen Anleitung. Lesen Sie Gästebuchanwendungen erstellen, um von Anfang an zu beginnen und eine Anleitung zum Einrichten zu erhalten.

Nutzer anmelden

Die Klasse MainPage definiert einen Handler für HTTP GET-Anfragen an den Stammpfad '/'. Der Handler überprüft, ob ein Nutzer angemeldet ist:

class MainPage(webapp2.RequestHandler):

    def get(self):
        guestbook_name = self.request.get('guestbook_name',
                                          DEFAULT_GUESTBOOK_NAME)
        greetings_query = Greeting.query(
            ancestor=guestbook_key(guestbook_name)).order(-Greeting.date)
        greetings = greetings_query.fetch(10)

        user = users.get_current_user()
        if user:
            url = users.create_logout_url(self.request.uri)
            url_linktext = 'Logout'
        else:
            url = users.create_login_url(self.request.uri)
            url_linktext = 'Login'

        template_values = {
            'user': user,
            'greetings': greetings,
            'guestbook_name': urllib.quote_plus(guestbook_name),
            'url': url,
            'url_linktext': url_linktext,
        }

        template = JINJA_ENVIRONMENT.get_template('index.html')
        self.response.write(template.render(template_values))

Wenn der Nutzer bereits bei Ihrer Anwendung angemeldet ist, gibt die Methode get_current_user() ein User-Objekt zurück und die Anwendung zeigt den Alias des Nutzers an. Wenn der Nutzer sich nicht angemeldet hat, leitet der Code den Browser des Nutzers zum Anmeldebildschirm für Google-Konten um. Der Anmeldemechanismus des Google-Kontos leitet den Nutzer zurück an die Anwendung, nachdem der Nutzer sich angemeldet hat.

Weitere Informationen finden Sie in der Users API.