Mengautentikasi Pengguna


Bagian dari panduan kode Buku Tamu Python ini menunjukkan cara mengautentikasi pengguna dan menampilkan salam yang disesuaikan untuk pengguna yang login.

Halaman ini adalah bagian dari tutorial multi-halaman. Untuk memulai dari awal dan melihat petunjuk penyiapan, buka Membuat Buku Tamu.

Pengguna sedang login

Class MainPage menentukan pengendali untuk permintaan GET HTTP ke jalur root '/'. Pengendali akan memeriksa apakah pengguna sudah login atau belum:

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

Jika pengguna sudah login ke aplikasi Anda, metode get_current_user() akan menampilkan objek User, dan aplikasi akan menampilkan nama panggilan pengguna. Jika pengguna belum login, kode akan mengalihkan browser pengguna ke layar login Akun Google. Mekanisme login Akun Google mengarahkan pengguna kembali ke aplikasi setelah pengguna login.

Untuk informasi selengkapnya, lihat Users API.