Pengantar
Login dengan Google (SiwG) adalah cara yang cepat dan aman bagi pengguna untuk login ke aplikasi atau situs Anda. Menerapkannya dengan benar tidak hanya menyederhanakan proses pendaftaran pengguna, tetapi juga meningkatkan keamanan aplikasi Anda. Dokumen ini menguraikan praktik terbaik untuk mengintegrasikan Login dengan Google di seluruh platform Web, Android, dan iOS. Dokumentasi ini hanya berfokus pada autentikasi. Otorisasi berada di luar cakupan dokumen ini.
Checklist tonggak pencapaian integrasi
Checklist ini memberikan roadmap tingkat tinggi untuk memandu Anda melalui proses integrasi Login dengan Google. Panduan ini disusun dalam beberapa fase utama, mulai dari penyiapan awal hingga peluncuran produksi. Gunakan daftar ini untuk melacak progres Anda dan klik link untuk membuka panduan mendetail untuk setiap pencapaian.
Fase 0: Memulai (opsional)
Mulai integrasi Anda dengan codelab developer langkah demi langkah yang praktis.
Web: Selesaikan codelab Sekali Ketuk dan tombol Login dengan Google untuk membuat integrasi web dasar.
Android: Selesaikan codelab Android untuk mempelajari dasar-dasar Credential Manager Android.
iOS: Selesaikan codelab iOS untuk pengantar iOS SDK.
Fase 1: Konfigurasi project & merek Google Cloud
Pastikan project Anda disiapkan dengan benar sejak awal.
Struktur project Google Cloud untuk lingkungan dan merek yang berbeda.
Selesaikan konfigurasi layar izin OAuth dengan semua informasi dukungan dan branding yang diperlukan.
Buat jenis Client ID OAuth yang benar untuk setiap platform (Web, Android, iOS).
Fase 2: Pengembangan inti: frontend dan backend
Bangun logika server yang aman dan pengalaman pengguna khusus platform.
Dalam pengembangan frontend Anda:
Tinjau dan terapkan praktik terbaik Pengalaman Pengguna (UX) umum untuk memaksimalkan adopsi dan kepercayaan pengguna.
Web : Gunakan library JavaScript resmi dan integrasikan alur Tombol dan Login Sekali Ketuk.
Android: Gunakan Android SDK resmi untuk melakukan integrasi.
iOS: Gunakan SDK iOS resmi untuk melakukan integrasi.
Dalam pengembangan backend Anda:
Terapkan validasi backend yang aman untuk token ID Google.
Gunakan klaim
sub sebagai ID pengguna yang unik dan permanen di sistem Anda.
Rencanakan cakupan pemisahan autentikasi dan otorisasi jika berlaku.
Fase 3: Penguatan keamanan & peluncuran produksi
Pastikan integrasi Anda aman, mematuhi kebijakan, dan siap untuk produksi.
Tinjau dan terapkan praktik terbaik keamanan.
Selesaikan proses Verifikasi Aplikasi OAuth sebelum peluncuran.
Pastikan aplikasi Anda menangani pencabutan token dengan benar saat penghapusan akun pengguna.
Praktik terbaik umum (semua platform)
Praktik ini berlaku terlepas dari platform yang Anda gunakan untuk pengembangan. Developer juga harus meninjau Kebijakan OAuth 2.0 secara umum untuk memastikan kepatuhan sepenuhnya.
Penyiapan project Google Cloud
Bagian ini menguraikan praktik terbaik untuk menyusun project Google Cloud dan menyiapkan klien OAuth Anda untuk keamanan dan kepatuhan branding.
Menggunakan project terpisah untuk pengujian dan produksi
Karena beberapa kebijakan Google hanya berlaku untuk aplikasi produksi, Anda harus membuat project terpisah di Konsol Google Cloud untuk berbagai lingkungan deployment, seperti pengembangan, staging, dan produksi. Lihat halaman ini untuk mengetahui detail selengkapnya.
Menggunakan project terpisah untuk setiap merek atau domain
Jika organisasi Anda mengelola beberapa aplikasi dengan merek yang berbeda, setiap merek harus memiliki Project Google Cloud khusus. Informasi yang ditampilkan kepada pengguna di layar izin, seperti nama aplikasi, logo, email dukungan, dan link ke Persyaratan Layanan dan Kebijakan Privasi, dikonfigurasi di tingkat project. Artinya, semua ID klien OAuth yang dibuat dalam satu project akan menggunakan branding yang sama. Memberi setiap merek projectnya sendiri memastikan bahwa pengguna melihat informasi merek dan hukum yang benar untuk aplikasi tertentu yang mereka gunakan.
Memberikan email dukungan umum
Alamat email dukungan pengguna ditampilkan secara publik di layar izin OAuth. Untuk menjaga profesionalisme dan memastikan kesinambungan, selalu konfigurasi email dukungan umum (misalnya,
support@yourdomain.com) dalam konfigurasi layar izin OAuth Project Google Cloud, bukan alamat email karyawan perorangan. Lihat halaman ini untuk mengetahui detail selengkapnya.Klien OAuth per platform
Anda harus membuat klien OAuth terpisah untuk setiap platform tempat aplikasi Anda berjalan (misalnya, Web, Android, iOS), semuanya dalam project Google Cloud yang sama. Menggunakan jenis klien yang benar untuk setiap platform sangat penting karena dua alasan utama:
- Keamanan yang ditingkatkan: Setiap jenis klien mengaktifkan fitur keamanan khusus platform. Misalnya, klien Android dapat dikunci berdasarkan nama paket dan sertifikat penandatanganannya, sehingga mencegah penggunaan ID klien Anda yang tidak sah.
- Fungsi yang tepat: Memastikan aplikasi Anda terintegrasi dengan benar dengan SDK dan fitur khusus platform, seperti Credential Manager di Android atau SDK Login dengan Google untuk iOS.
Struktur ini juga menyederhanakan pengalaman pengguna. Karena izin ditangani di tingkat project Google Cloud, pengguna hanya perlu memberikan izin sekali ke aplikasi Anda di semua platform. Untuk mengetahui detail selengkapnya, lihat kebijakan OAuth 2.0 resmi.
Menyelesaikan verifikasi aplikasi OAuth
Agar nama dan logo aplikasi produksi Anda ditampilkan, aplikasi tersebut harus diverifikasi. Jenis verifikasi bergantung pada data yang Anda minta dari pengguna.
- Login dengan Google hanya meminta cakupan autentikasi
(
email,profile, danopenid), sehingga tunduk pada Verifikasi Merek yang lebih sederhana. Proses ini umumnya lebih cepat dan berfokus untuk mengonfirmasi identitas merek Anda.
Untuk membantu Anda merencanakan linimasa peluncuran, Google memberikan perincian berbagai jenis verifikasi dan perkiraan waktu peninjauannya. Untuk mengetahui detail selengkapnya tentang kebijakan verifikasi, lihat Pusat Bantuan Verifikasi Aplikasi OAuth.
- Login dengan Google hanya meminta cakupan autentikasi
(
Keamanan & penanganan token
Bagian ini berfokus pada persyaratan runtime dan langkah-langkah keamanan yang harus diterapkan developer di server backend mereka.
Mengintegrasikan token ID Google dengan backend Anda
- Verifikasi token ID: Selalu verifikasi integritas token ID Google di server backend Anda. Jangan pernah memercayai token hanya karena dikirim dari klien Anda. Sebaiknya Anda menggunakan library klien Google API untuk verifikasi ini. Lihat Memverifikasi token ID Google di sisi server Anda untuk detail selengkapnya.
- Gunakan klaim
sub: Hanya gunakan kolom token ID Googlesubsebagai ID pengguna karena unik dan stabil di antara semua Akun Google dan tidak pernah digunakan kembali. Anda harus menyimpan kolomsubdan mengaitkannya dengan pengguna di sistem pengelolaan akun Anda. Meskipun Anda dapat menggunakan alamat email dari token ID untuk memeriksa apakah pengguna memiliki akun yang sudah ada, jangan gunakan alamat email sebagai ID karena Akun Google dapat memiliki beberapa alamat email pada waktu yang berbeda.
Mencabut token saat penghapusan akun
Sangat disarankan untuk memberi pengguna yang login dengan Google kemampuan untuk membatalkan tautan Akun Google mereka dari aplikasi Anda. Jika pengguna memilih untuk menghapus akunnya, Anda harus mencabut semua akses dan memperbarui token yang telah diperoleh aplikasi Anda.
Untuk mengetahui detail tentang pencabutan token sisi klien, buka dokumentasi Web, Android, iOS. Untuk pencabutan sisi server, buka Menggunakan OAuth 2.0 untuk Aplikasi Server Web.
Memisahkan autentikasi dari otorisasi
SDK Login dengan Google hanya meminta cakupan yang diperlukan untuk autentikasi. Jika aplikasi Anda memerlukan akses ke layanan Google lainnya (seperti Google Kalender atau Drive), Anda harus meminta izin tersebut secara terpisah dan hanya saat pengguna mencoba melakukan tindakan yang memerlukannya. Lihat Momen autentikasi dan otorisasi yang terpisah untuk mengetahui detail selengkapnya.
Praktik keamanan terbaik
Untuk integrasi yang aman, selalu verifikasi token ID di server backend Anda menggunakan library klien Google API. Untuk perlindungan yang lebih komprehensif terhadap berbagai ancaman, terapkan Paket Keamanan dan Perlindungan Lintas Akun (RISC). Selain itu, untuk aplikasi iOS, sangat direkomendasikan untuk mengintegrasikan App Check guna memastikan permintaan berasal dari aplikasi asli Anda.
Pengalaman pengguna (UX)
Bagian ini berfokus pada pengoptimalan elemen yang terlihat oleh pengguna dan alur login/daftar.
Menampilkan tombol secara jelas: Tombol Login dengan Google harus terlihat jelas dan dapat diakses di halaman login dan pendaftaran Anda.
Ikuti pedoman merek: Gunakan tombol login bermerek Google resmi untuk memastikan pengalaman pengguna yang konsisten dan tepercaya. Tinjau Pedoman Branding Login dengan Google resmi.
Pendaftaran tanpa hambatan: Untuk pengguna baru, buat akun secara otomatis atau arahkan pengguna ke alur pembuatan akun baru saat mereka berhasil Login dengan Google untuk pertama kalinya. Di backend, periksa apakah ada pengguna dengan ID
subyang diberikan; jika tidak ada, buat akun baru. Hal ini meminimalkan upaya pendaftaran.Login yang disederhanakan: Untuk pengguna yang kembali, gunakan ID
subuntuk mengidentifikasi dan mengautentikasi mereka ke akun yang sudah ada. Terapkan fitur seperti login otomatis untuk Web dan Android agar mereka dapat kembali ke aplikasi Anda dengan cepat dan aman.Mengelola Metode Login dengan Akun Media Sosial: Menyediakan bagian "Akun Tertaut" yang terpusat di setelan pengguna tempat pengguna dapat mengelola berbagai metode login dengan akun media sosial (misalnya, Google).
Penautan: Menyediakan tombol "Login dengan Google" untuk pengguna lama yang menggunakan metode lain (misalnya, nama pengguna dan sandi). Mengklik ini akan memulai alur autentikasi untuk menautkan Akun Google mereka ke profil yang sudah ada.
Membatalkan tautan: Menyediakan opsi untuk memutuskan hubungan akun. Untuk menyelesaikan tindakan ini, Anda harus mencabut token dan menghapus asosiasi Google dari database Anda.
Implementasi Android (aplikasi & game)
Aplikasi Android standar
Untuk penerapan Android, Anda harus menggunakan Credential Manager. Ini adalah pendekatan yang direkomendasikan untuk menangani kredensial pengguna dan memberikan pengalaman login yang terpadu, aman, dan konsisten di Android.
Gunakan Client ID OAuth untuk Android untuk penerapan. Jika Anda sudah menerapkan Login dengan Google di platform lain (misalnya, Web, iOS), Anda harus membuat Client ID OAuth baru berjenis Android di project Google Cloud yang sama.
Alur penerapan
Penerapan yang andal harus mencakup UI sheet bawah Credential Manager dan Tombol Login dengan Google.
- Bottomsheet: Ini adalah dialog yang didorong developer dan memiliki gesekan rendah yang ditampilkan oleh Pengelola Kredensial saat pengguna membuka layar login Anda.
- Tombol Login dengan Google: Ini adalah alur login eksplisit yang dimulai pengguna dan dapat diketuk pengguna untuk memulai.
- Konfigurasi project Google Cloud yang tepat sangat penting. Hal ini melibatkan
pembuatan jenis client ID OAuth yang benar dan penyediaan detail
tertentu seperti sidik jari sertifikat
SHA-1aplikasi Anda. Untuk memastikan penyiapan yang benar, ikuti panduan developer Android resmi dengan cermat.
Anda harus selalu menyertakan alur Tombol karena pengguna dapat menutup bottomsheet atau menonaktifkannya di preferensi mereka. Tombol memastikan bahwa pengguna selalu dapat memulai proses login.
Strategi penempatan
Tombol Login dengan Google:
- Lokasi: Tampilkan tombol Login dengan Google di halaman pendaftaran atau login khusus Anda.
- Visibilitas: Tempatkan secara jelas bersama metode login lainnya, seperti kolom nama pengguna dan sandi atau penyedia login sosial lainnya.
Lembar Bawah Pengelola Kredensial:
- Pemicu: Bottom sheet harus dipanggil secara otomatis saat halaman login Anda diluncurkan atau saat aplikasi dimulai. Tidak boleh dipicu saat pengguna mengetuk tombol.
- Login otomatis: Untuk pengguna yang kembali, sebaiknya aktifkan opsi login otomatis dalam Credential Manager. Hal ini memungkinkan pengguna yang kembali (yang sebelumnya memberikan izin) login kembali ke aplikasi Anda tanpa interaksi apa pun.
Game Android
Untuk game Android, Credential Manager bukan pendekatan yang direkomendasikan. Sebagai gantinya, developer game harus menggunakan pendekatan Layanan game Google Play (PGS) yang berfokus pada identitas Google lintas platform menggunakan Login dengan Google. Anda dapat menemukan detail selengkapnya di dokumentasi Identitas Google lintas platform menggunakan Login dengan Google.
Implementasi iOS
Menggunakan SDK Login dengan Google resmi
Untuk aplikasi iOS, Anda harus menggunakan SDK Login dengan Google untuk iOS dan macOS resmi. Library ini menyediakan cara yang paling aman dan mudah digunakan untuk mengintegrasikan Login dengan Google.
Gunakan Client ID OAuth untuk iOS untuk penerapan. Jika Anda sudah menerapkan Login dengan Google di platform lain (misalnya, Web, Android), Anda harus membuat Client ID OAuth jenis iOS baru di project Google Cloud yang sama.
Menambahkan Tombol "Login dengan Google"
- Penempatan: Tambahkan tombol "Login dengan Google" ke tampilan login aplikasi Anda, di halaman pendaftaran dan login. Tempatkan secara jelas bersama metode login lainnya, seperti kolom nama pengguna dan sandi atau penyedia login sosial lainnya.
- Gunakan Komponen yang Direkomendasikan: Gunakan komponen tombol resmi yang disediakan oleh SDK untuk SwiftUI dan UIKit. Komponen ini otomatis membuat tombol yang mematuhi pedoman branding Google dan merupakan cara yang direkomendasikan untuk menampilkan tombol.
Meningkatkan keamanan dengan App Check
Lindungi resource backend Anda dari penyalahgunaan dengan memverifikasi bahwa permintaan ke klien OAuth 2.0 Anda berasal dari aplikasi asli Anda. App Check menggunakan penyedia pengesahan untuk memverifikasi bahwa permintaan berasal dari instance aplikasi Anda yang asli dan tidak dimodifikasi, serta menolak permintaan yang tidak memenuhi syarat. Lihat App Check untuk Login dengan Google di iOS untuk mengetahui detail selengkapnya.
Penerapan web
Panduan untuk situs dan aplikasi web.
Menggunakan library JavaScript resmi Login dengan Google
Untuk penerapan web, Anda harus menggunakan library JavaScript Login dengan Google resmi. Ini adalah generasi terbaru library identitas Google untuk web dan mencakup fitur Tombol dan Login Sekali Ketuk.
Gunakan Client ID OAuth untuk Web untuk penerapan. Jika sudah menerapkan Login dengan Google di platform lain (misalnya, Android, iOS), Anda harus membuat jenis Web Client ID OAuth baru di project Google Cloud yang sama.
Terapkan alur Tombol dan Ketuk Sekali
Sebaiknya terapkan Tombol "Login dengan Google" dan pengalaman login Sekali Ketuk.
- Tombol Login dengan Google: Ini adalah alur login/pendaftaran yang dimulai pengguna secara eksplisit.
- Sekali Ketuk: Opsi ini memberikan perintah login atau pendaftaran yang lancar dan tidak terlalu mengganggu.
- Gunakan Client ID OAuth yang sama untuk Web untuk kedua penerapan.
Anda harus selalu menyertakan Tombol sebagai opsi login utama. Pengguna dapat menutup atau menonaktifkan Login Sekali Ketuk di setelan Akun Google mereka, tetapi Tombol akan selalu tersedia, sehingga pengguna tidak pernah terhalang untuk login.
Strategi penempatan
Tombol Login dengan Google:
- Lokasi: Tampilkan
tombol Login dengan Google yang dipersonalisasi di halaman khusus pendaftaran atau login Anda.
- Perhatikan bahwa tidak ada satu pola yang paling cocok untuk semua situs (misalnya, pengalihan versus pop-up). Tim desain web atau UX Anda harus menguji dan mengoptimalkan alur ini untuk memaksimalkan rasio penyelesaian pendaftaran dan login.
- Visibilitas: Tempatkan secara jelas bersama metode login lainnya, seperti kolom nama pengguna dan sandi atau penyedia login sosial lainnya.
- Tinjau: Bagian Pertimbangan tombol Login dengan Google untuk konfigurasi dan performa yang optimal.
- Lokasi: Tampilkan
tombol Login dengan Google yang dipersonalisasi di halaman khusus pendaftaran atau login Anda.
Dialog Sekali Ketuk:
- Lokasi: Tampilkan dialog sekali ketuk di beberapa halaman situs Anda, seperti halaman produk individual, halaman artikel, bahkan halaman beranda. Manfaat utama Login Sekali Ketuk adalah memungkinkan pengguna login atau membuat akun tanpa keluar dari halaman saat ini.
- Login otomatis: Untuk pengguna yang kembali, sebaiknya aktifkan opsi login otomatis dalam Login Sekali Ketuk. Hal ini memungkinkan pengguna yang kembali (yang sebelumnya memberikan izin) untuk login kembali ke aplikasi Anda tanpa interaksi apa pun.
- Tinjau: Bagian Pertimbangan fitur Login Sekali Ketuk untuk konfigurasi dan performa yang optimal.