Autenticazione degli utenti


Questa parte della procedura dettagliata del codice del guestbook Python mostra come autenticare gli utenti e visualizzare un saluto personalizzato per l'utente che ha eseguito l'accesso.

Questa pagina fa parte di un tutorial multi pagina. Per partire dall'inizio e vedere le istruzioni per la configurazione, vai a Creare un guestbook.

Accesso degli utenti

La classe MainPage definisce un gestore per le richieste HTTP GET al percorso principale '/'. Il gestore controlla se un utente ha eseguito l'accesso:

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))

Se l'utente ha già eseguito l'accesso all'applicazione, il metodo get_current_user() restituisce un oggetto User e nell'app viene visualizzato il nickname dell'utente. Se l'utente non ha eseguito l'accesso, il codice reindirizza il browser dell'utente alla schermata di accesso all'Account Google. Il meccanismo di accesso all'Account Google reindirizza l'utente all'app dopo che l'utente ha eseguito l'accesso.

Per ulteriori informazioni, consulta la pagina dedicata all'API Users.