Setup Google Login
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Pendahuluan
Bagian berjudul “Pendahuluan”Dalam panduan ini, Anda akan mempelajari cara setup Google Login dengan Capgo Social Login. Anda memerlukan hal berikut untuk setup Google Login:
- A Google account
Setup Umum
Bagian berjudul “Setup Umum”Di bagian ini, Anda akan mengatur layar login yang ditampilkan oleh Google.
- Silakan buka console.cloud.google.com
- Klik pada pemilih proyek
- Jika Anda belum memiliki proyek, silakan buat proyek baru.
- Klik pada
New project
- Beri nama proyek Anda lalu klik
Create
- Pastikan Anda berada di proyek yang benar
- Klik pada
- Mulai konfigurasi
OAuth consent screen-
Klik kolom pencarian
-
Cari
OAuth consent screendan klik pada item tersebut
-
Konfigurasi consent screen
Klik pada
create
-
- Isi informasi tentang aplikasi Anda
-
Mari kita mulai dengan
App Information
- Please type in your
App Name - Masukkan
user support email
-
Anda BISA tambahkan logo aplikasi.
-
Anda HARUS mengonfigurasi bagian
App domain
-
Anda WAJIB masukkan email developer
-
Klik pada
save and continue
- Please type in your
-
- Konfigurasi scope
-
Klik pada
add or remove scopes
-
Pilih scope berikut dan klik
update
-
Klik
save and continue
-
- Tambah user testing
- Klik pada
add users
- Masukkan email Google, tekan enter, lalu klik
add
- Klik
save and continue
- Klik pada
- Klik
back to dashboard
- Submit aplikasi Anda untuk verifikasi
Perbedaan antara akses online dan akses offline
Bagian berjudul “Perbedaan antara akses online dan akses offline”Ada beberapa cara untuk menggunakan Google Login dengan Capacitor. Berikut adalah tabel ringkasan perbedaannya:
| Akses online | Akses offline | |
|---|---|---|
| Membutuhkan backend | ❌ | ✅ |
| Token akses berumur panjang | ❌ | ✅ |
| Setup mudah | ✅ | ❌ |
Jika Anda masih bingung harus memilih yang mana, pertimbangkan skenario berikut:
-
Anda ingin user login, lalu segera memberikan custom JWT kepada mereka. Aplikasi Anda TIDAK AKAN memanggil Google APIs
Dalam kasus ini, pilih online access.
-
Aplikasi Anda akan memanggil beberapa Google APIs dari client, tetapi tidak pernah dari backend
Dalam kasus ini, pilih online access
-
Aplikasi Anda akan memanggil beberapa Google APIs dari backend, tetapi hanya saat user sedang aktif menggunakan aplikasi
Dalam kasus ini, pilih online access
-
Aplikasi Anda akan mengecek kalender user secara berkala, bahkan saat user tidak sedang aktif menggunakan aplikasi
Dalam kasus ini, pilih offline access
Contoh backend untuk online access
Bagian berjudul “Contoh backend untuk akses online”Di bagian tutorial ini, saya akan menunjukkan cara memvalidasi user di backend Anda.
Contoh ini sangat sederhana dan akan menggunakan teknologi berikut:
Anda dapat menemukan code untuk contoh ini di sini
Seperti yang Anda lihat:
Konsepnya cukup sederhana. Anda mengirimkan sebuah GET request ke https://www.googleapis.com/oauth2/v3/tokeninfo dan ini akan mengembalikan status validitas token, serta email pengguna jika valid. Ini juga memberikan informasi lain terkait token pengguna tersebut
Dari sana, Anda bisa menerbitkan JWT sendiri atau membuat session cookie. Kemungkinannya tak terbatas untuk implementasi auth akhir Anda.
Jika Anda ingin memanggil API milik Google, saya sangat menyarankan untuk melihat Google OAuth 2.0 Playground. Dari sana Anda bisa melihat dengan mudah API mana saja yang bisa dipanggil.
Menggunakan offline access dengan backend Anda sendiri
Bagian berjudul “Menggunakan offline access dengan backend Anda sendiri”Untuk menggunakan offline access, Anda akan membutuhkan hal berikut:
- HTTP server
Dalam contoh ini, saya akan menggunakan teknologi berikut untuk menyediakan offline access di aplikasi saya:
-
LowDb (database sederhana)
code untuk contoh ini dapat ditemukan di sini
Untuk code sisi client, tampilannya seperti ini:
import { Capacitor } from '@capacitor/core';import { GoogleLoginOfflineResponse, SocialLogin } from '@capgo/capacitor-social-login';import { usePopoutStore } from '@/popoutStore'; // <-- specific to my app
const baseURL = "[redacted]";
async function fullLogin() { await SocialLogin.initialize({ google: { webClientId: '[redacted]', iOSClientId: '[redacted]', iOSServerClientId: 'The same value as webClientId', mode: 'offline' // <-- important } }) const response = await SocialLogin.login({ provider: 'google', options: { forceRefreshToken: true // <-- important } })
if (response.provider === 'google') { const result = response.result as GoogleLoginOfflineResponse const res = await fetch(`${baseURL}/auth/google_offline`, { headers: { "Content-Type": "application/json" }, body: JSON.stringify({ serverAuthCode: result.serverAuthCode, platform: Capacitor.getPlatform() }), method: "POST" })
if (res.status !== 200) { popoutStore.popout("Full google login failed", "check console"); return }
const { jwt } = await res.json(); const userinfo = await fetch(`${baseURL}/auth/get_google_user`, { headers: { Authorization: `Bearer ${jwt}` } }) if (userinfo.status !== 200) { popoutStore.popout("Full google (userinfo) login failed", "check console"); return } popoutStore.popout("userinfo res", await userinfo.text()); }}Perhatikan apa yang tidak ada di sini: tidak ada SocialLogin.refresh() call di dalam app. Ini disengaja. Dalam mode offline Google, refresh terjadi setelah backend Anda melakukan exchange serverAuthCode dan menyimpan refresh token dengan aman.
Lanjutkan dari Setup Google Login
Bagian berjudul “Lanjutkan dari Setup Google Login”Jika Anda menggunakan Setup Google Login untuk merencanakan alur autentikasi dan akun, hubungkan dengan Menggunakan @capgo/capacitor-social-login untuk kapabilitas native di Menggunakan @capgo/capacitor-social-login, @capgo/capacitor-social-login untuk detail implementasi di @capgo/capacitor-social-login, @capgo/capacitor-passkey untuk detail implementasi di @capgo/capacitor-passkey, @capgo/capacitor-native-biometric untuk detail implementasi di @capgo/capacitor-native-biometric, dan Autentikasi dua faktor untuk detail implementasi di autentikasi dua faktor.