Panduan ini membantu Anda memilih antara menggunakan library Google Identity Services untuk otorisasi pengguna atau menerapkan library JavaScript Anda sendiri. Dokumen ini membantu Anda memutuskan alur otorisasi OAuth 2.0 mana yang paling sesuai 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 di perangkat pengguna. Library ini tidak ditujukan untuk digunakan dengan framework JavaScript sisi server seperti Node.js. Sebagai gantinya, gunakan library klien Node.js Google.
Panduan ini hanya mencakup topik otorisasi dan berbagi data. Panduan ini tidak meninjau autentikasi pengguna, tetapi lihat panduan Login dengan Google dan Bermigrasi dari Login dengan Google untuk pendaftaran dan login pengguna.
Menentukan apakah library GIS cocok untuk Anda
Anda harus memilih apakah menggunakan library Google, atau membuat library sendiri paling sesuai dengan kebutuhan Anda. Ringkasan fitur dan fungsi:
- Library JavaScript Layanan Identitas Google menerapkan:
- Alur izin berbasis dialog untuk meminimalkan pengalihan, sehingga pengguna 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.
- Penanganan error yang mudah dipahami dan link dokumentasi untuk digunakan oleh engineer selama pengembangan dan selanjutnya oleh 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.
- Penerapan fitur keamanan untuk memvalidasi permintaan, respons, dan untuk mencegah CSRF.
- Metode untuk mengonfirmasi bahwa pengguna telah memberikan izin untuk cakupan yang diminta.
- Mengelola kode error OAuth 2.0, membuat pesan yang mudah dibaca, 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: implisit atau kode 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,
- jika platform backend diperlukan untuk menghosting endpoint dan menyimpan token refresh per pengguna untuk setiap akun pengguna, dan
- tingkat keamanan pengguna yang lebih tinggi atau lebih rendah.
Saat membandingkan alur dan mengevaluasi persyaratan keamanan Anda, salah satu faktor yang perlu dipertimbangkan adalah tingkat keamanan pengguna bervariasi, bergantung pada cakupan yang Anda pilih. Misalnya, melihat undangan kalender sebagai hanya baca dapat dianggap kurang berisiko daripada menggunakan cakupan baca dan tulis untuk mengedit file di Drive.
Perbandingan alur OAuth 2.0
| Alur implisit | Alur kode otorisasi | |
| Diperlukan izin pengguna | Untuk setiap permintaan token, termasuk mengganti token yang telah habis masa berlakunya. | Hanya untuk permintaan token pertama. |
| Pengguna harus hadir | Ya | Tidak, mendukung penggunaan offline. |
| Keamanan pengguna | Paling sedikit | Sebagian besar, memiliki autentikasi klien dan menghindari risiko penanganan token dalam browser. |
| Token akses dikeluarkan | Ya | Ya |
| Token refresh dikeluarkan | Tidak | Ya |
| Browser yang didukung diperlukan | Ya | Ya |
| Token akses yang digunakan untuk memanggil Google API | hanya dari aplikasi web yang berjalan di browser 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 yang aman | Tidak | Ya, untuk penyimpanan token refresh. |
| Memerlukan hosting endpoint kode otorisasi | Tidak | Ya, untuk menerima kode otorisasi dari Google. |
| Perilaku masa berlaku token akses | Gestur pengguna seperti menekan tombol atau mengklik link diperlukan untuk meminta dan mendapatkan token akses baru yang valid. | Setelah permintaan pengguna awal, platform Anda menukarkan token refresh yang disimpan untuk mendapatkan token akses baru yang valid dan diperlukan untuk memanggil Google API. |