Users API untuk paket layanan lama

Users API memungkinkan aplikasi untuk:

  • Mendeteksi apakah pengguna saat ini telah login.
  • Mengalihkan pengguna ke halaman login yang sesuai untuk login.
  • Meminta pengguna aplikasi membuat Akun Google baru jika mereka belum memilikinya.

Saat pengguna login, aplikasi dapat mengakses alamat email pengguna, serta ID pengguna unik. Aplikasi juga dapat mendeteksi apakah pengguna saat ini adalah administrator (juga disebut "pengguna admin"), sehingga memudahkan penerapan area khusus admin pada aplikasi.

Autentikasi pengguna di Python 2

Contoh berikut menyapa pengguna yang telah login ke aplikasi dengan pesan yang dipersonalisasi dan link untuk logout. Jika pengguna tidak login, aplikasi akan menawarkan link ke halaman login untuk Akun Google.

Pertama, impor modul google.appengine.api.users.

from google.appengine.api import users

Kemudian, gunakan modul tersebut untuk mendapatkan informasi tentang pengguna:

user = users.get_current_user()
if user:
    nickname = user.nickname()
    logout_url = users.create_logout_url('/')
    greeting = 'Welcome, {}! (<a href="{}">sign out</a>)'.format(
        nickname, logout_url)
else:
    login_url = users.create_login_url('/')
    greeting = '<a href="{}">Sign in</a>'.format(login_url)

Menerapkan akses login dan admin dengan app.yaml

Jika Anda memiliki halaman yang mengharuskan pengguna login agar dapat mengakses, Anda dapat menerapkannya di file app.yaml. Jika pengguna mengakses URL yang dikonfigurasi untuk mewajibkan login dan pengguna tidak login, App Engine akan mengalihkan pengguna ke halaman login Google yang sesuai, lalu mengarahkan pengguna kembali ke URL aplikasi Anda setelah mereka berhasil masuk atau mendaftar.

Konfigurasi pengendali juga dapat mengharuskan pengguna untuk menjadi administrator terdaftar untuk aplikasi; yaitu pengguna harus memiliki peran Viewer, Editor, Pemilik, atau Admin App Engine. Hal ini memudahkan pembuatan bagian situs khusus administrator, tanpa harus menerapkan mekanisme otorisasi terpisah.

Guna mempelajari cara mengonfigurasi autentikasi URL, lihat cara mengharuskan status administrator atau login dalam referensi app.yaml.

Opsi autentikasi

Aplikasi Anda dapat mengautentikasi pengguna menggunakan salah satu opsi berikut:

  • Akun Google
  • Akun di domain Google Workspace Anda

Memilih opsi autentikasi

Setelah membuat aplikasi, Anda dapat memilih opsi autentikasi yang ingin digunakan. Secara default, aplikasi Anda akan menggunakan Akun Google untuk autentikasi. Untuk memilih opsi lain, seperti domain Google Workspace, buka halaman setelan untuk project Anda di konsol Google Cloud, lalu klik Edit. Di menu drop-down Autentikasi Google, pilih jenis autentikasi yang diinginkan, lalu klik Simpan.

Login dan logout

Aplikasi dapat mendeteksi apakah pengguna telah login ke aplikasi dengan opsi autentikasi yang dipilih aplikasi. Jika pengguna tidak login, aplikasi dapat mengarahkan pengguna ke Akun Google untuk login atau membuat Akun Google baru. Aplikasi akan mendapatkan URL untuk halaman login dengan memanggil metode Users API. Aplikasi dapat menampilkan URL ini sebagai link, atau menetapkan pengalihan HTTP ke URL saat pengguna mengunjungi halaman yang memerlukan autentikasi.

Jika aplikasi menggunakan Akun Google atau Google Workspace untuk autentikasi, nama aplikasi akan muncul di halaman login saat pengguna login ke aplikasi Anda. Nama yang ditampilkan adalah nama aplikasi yang Anda tentukan saat mendaftarkan aplikasi. Anda dapat mengubah nama ini di kolom Nama aplikasi pada halaman Kredensial konsol Google Cloud.

Setelah login atau membuat Akun Google, pengguna akan dialihkan kembali ke aplikasi Anda. Aplikasi ini memberikan URL alihan ke metode yang menghasilkan URL login.

Users API menyertakan metode yang menghasilkan URL untuk logout dari aplikasi. URL logout membatalkan autentikasi pengguna dari aplikasi, lalu mengalihkan kembali ke URL aplikasi tanpa menampilkan apa pun.

Pengguna tidak dapat login ke aplikasi hingga diminta untuk melakukannya oleh aplikasi dan memasukkan alamat email serta sandi akun mereka. Hal ini tetap berlaku meskipun pengguna telah login ke aplikasi lain menggunakan Akun Google mereka.

Mengakses informasi akun

Saat pengguna login, aplikasi dapat mengakses alamat email akun untuk setiap permintaan yang dibuat pengguna. Aplikasi juga dapat mengakses ID pengguna yang mengidentifikasi pengguna secara unik, meskipun pengguna mengubah alamat email akunnya.

Aplikasi juga dapat menentukan apakah pengguna saat ini adalah administrator untuk aplikasi. Pengguna admin adalah pengguna yang memiliki peran Viewer, Editor, Pemilik, atau Admin App Engine. Anda dapat menggunakan fitur ini untuk membuat fitur administratif aplikasi, meskipun Anda tidak mengautentikasi pengguna lain. API Go, Java, PHP, dan Python memudahkan konfigurasi URL sebagai "khusus administrator".

Pengguna dan Datastore

API Layanan pengguna dapat menampilkan informasi pengguna saat ini sebagai objek Pengguna. Meskipun objek Pengguna dapat disimpan sebagai nilai properti di datastore, sebaiknya jangan dilakukan karena hal ini mencakup alamat email beserta ID unik pengguna. Jika pengguna mengubah alamat emailnya dan Anda membandingkan User lama yang disimpan dengan nilai User yang baru, nilai tersebut tidak akan cocok. Sebagai gantinya, pertimbangkan untuk menggunakan nilai ID pengguna User sebagai ID unik yang stabil milik pengguna.

Akun Google dan server pengembangan

Server pengembangan menyimulasikan sistem Akun Google menggunakan layar login palsu. Saat aplikasi Anda memanggil Users API untuk mendapatkan URL layar login, API akan menampilkan URL server pengembangan khusus yang meminta alamat email, tetapi tidak meminta sandi. Anda dapat mengetik alamat email apa pun ke dalam permintaan ini, dan aplikasi akan berperilaku seolah-olah Anda login menggunakan akun dengan alamat tersebut.

Layar login palsu juga menyertakan kotak centang yang menunjukkan apakah akun palsu adalah administrator; yaitu, apakah akun memiliki peran Viewer, Editor, Pemilik, atau Admin App Engine. Jika Anda mencentang kotak ini, aplikasi akan berperilaku seolah-olah Anda login menggunakan akun administrator.

Demikian pula, Users API akan menampilkan URL logout yang membatalkan login palsu.

ID unik untuk objek Pengguna di server pengembangan diperhitungkan dari alamat email. Dua alamat email unik selalu mewakili dua pengguna unik dalam server pengembangan.