Memilih model otorisasi pengguna

Panduan ini membantu Anda memilih antara menggunakan library Google Identity Services untuk otorisasi pengguna atau menerapkan library JavaScript Anda sendiri. Fitur ini membantu Anda memutuskan alur otorisasi OAuth 2.0 yang terbaik untuk aplikasi web Anda.

Sebelum membaca panduan ini, Anda dianggap sudah memahami istilah dan konsep yang dijelaskan dalam panduan Ringkasan dan Cara kerja otorisasi pengguna.

Library GIS berjalan di browser yang didukung ini pada perangkat pengguna. Library ini tidak dimaksudkan untuk digunakan dengan framework JavaScript sisi server seperti Node.js. Sebagai gantinya, gunakan library klien Node.js Google.

Panduan ini hanya membahas topik otorisasi dan berbagi data. Bagian ini tidak meninjau autentikasi pengguna. Sebagai gantinya, lihat panduan Login dengan Google dan Bermigrasi dari Login dengan Google untuk proses pendaftaran dan login pengguna.

Memutuskan apakah library GIS tepat untuk Anda

Anda harus memilih apakah akan menggunakan library Google, atau membuat sendiri yang paling sesuai dengan kebutuhan Anda. Ringkasan fitur dan fungsi:

  • Library JavaScript Layanan Identitas Google menerapkan:
    • Alur izin berbasis pop-up untuk meminimalkan pengalihan, sehingga pengguna dapat tetap berada di situs Anda selama proses otorisasi.
    • Fitur keamanan seperti Pemalsuan Permintaan Lintas Situs (CRSF).
    • Metode helper untuk meminta cakupan individual dan mengonfirmasi izin pengguna.
    • Link dokumentasi dan penanganan error yang mudah digunakan oleh engineer selama pengembangan dan selanjutnya bagi pengunjung situs Anda.
  • Saat menerapkan tanpa library Layanan Identitas, Anda bertanggung jawab untuk:
    • Mengelola permintaan dan respons dengan endpoint OAuth 2.0 Google, termasuk pengalihan.
    • Mengoptimalkan pengalaman pengguna.
    • Implementasi fitur keamanan untuk memvalidasi permintaan, respons, dan untuk mencegah CSRF.
    • Metode untuk mengonfirmasi bahwa pengguna telah memberikan izin untuk cakupan apa pun yang diminta.
    • Mengelola kode error OAuth 2.0, membuat pesan yang dapat dibaca manusia, dan link ke bantuan pengguna.

Singkatnya, Google menawarkan library GIS untuk membantu Anda menerapkan klien OAuth 2.0 dengan cepat dan aman, serta mengoptimalkan pengalaman otorisasi pengguna.

Memilih alur otorisasi

Anda harus memilih salah satu dari dua alur otorisasi OAuth 2.0: kode implisit atau otorisasi -- terlepas dari apakah Anda memutuskan untuk menggunakan library JavaScript Google Identity Services atau membuat library Anda sendiri.

Kedua alur menghasilkan token akses yang dapat digunakan untuk memanggil Google API.

Perbedaan utama antara kedua alur tersebut adalah:

  • jumlah tindakan pengguna,
  • apakah aplikasi Anda akan memanggil Google API tanpa kehadiran pengguna,
  • apakah platform backend diperlukan untuk menghosting endpoint dan menyimpan token refresh per pengguna untuk masing-masing akun pengguna, dan
  • tingkat keamanan pengguna yang lebih tinggi atau lebih rendah.

Saat membandingkan alur dan mengevaluasi persyaratan keamanan, faktor yang perlu dipertimbangkan adalah tingkat keamanan pengguna bervariasi bergantung pada cakupan yang Anda pilih. Misalnya, melihat undangan kalender sebagai hanya baca mungkin dianggap tidak terlalu berisiko dibandingkan menggunakan cakupan baca/tulis untuk mengedit file di Drive.

Perbandingan alur OAuth 2.0

Alur implisit Alur kode otorisasi
Perlu izin pengguna Untuk setiap permintaan token, termasuk mengganti token yang sudah tidak berlaku. Hanya untuk permintaan token pertama.
Pengguna harus ada Ya Tidak, mendukung penggunaan offline.
Keamanan pengguna Paling sedikit Sebagian besar, memiliki autentikasi klien dan menghindari risiko penanganan token dalam browser.
Token akses diterbitkan Ya Ya
Token refresh dikeluarkan Tidak Ya
Perlu browser yang didukung Ya Ya
Token akses yang digunakan untuk memanggil Google API hanya dari aplikasi web yang berjalan di {i>browser<i} pengguna. baik dari server yang berjalan di platform backend, atau dari aplikasi web yang berjalan di browser pengguna.
Memerlukan platform backend Tidak Ya, untuk hosting dan penyimpanan endpoint.
Perlu penyimpanan aman Tidak Ya, untuk penyimpanan token refresh.
Memerlukan hosting endpoint kode otorisasi Tidak Ya, untuk menerima kode otorisasi dari Google.
Perilaku akhir masa berlaku token akses Gestur pengguna seperti menekan tombol atau mengklik link diperlukan untuk meminta dan mendapatkan token akses baru yang valid. Setelah ada permintaan awal dari pengguna, platform Anda akan menukar token refresh yang disimpan untuk mendapatkan token akses valid baru yang diperlukan untuk memanggil Google API.