Pengaturan Google Login
Pendahuluan
Section titled “Pendahuluan”Dalam panduan ini, Anda akan mempelajari cara mengatur Google Login dengan Capgo Social Login. Anda akan memerlukan hal berikut untuk mengatur Google Login:
- Akun Google
Pengaturan umum
Section titled “Pengaturan umum”Dalam 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 dan klik
Create
- Pastikan bahwa Anda berada di proyek yang benar

- Klik pada
- Mulai mengonfigurasi
OAuth consent screen-
Klik pada bilah pencarian

-
Cari
OAuth consent screendan klik padanya
-
Konfigurasikan layar persetujuan
Klik pada
create
-
- Isi informasi tentang aplikasi Anda
-
Mari kita mulai dengan
App Information
- Silakan ketik
App NameAnda - Masukkan
user support email
-
Anda DAPAT menambahkan logo aplikasi.

-
Anda SEBAIKNYA mengonfigurasi
App domain
-
Anda HARUS menyediakan email pengembang

-
Klik pada
save and continue
- Silakan ketik
-
- Konfigurasikan scope
-
Klik pada
add or remove scopes
-
Pilih scope berikut dan klik
update
-
Klik
save and continue
-
- Tambahkan pengguna uji
- Klik pada
add users
- Masukkan email Google Anda, tekan enter, dan klik
add
- Klik
save and continue
- Klik pada
- Klik
back to dashboard
- Kirim aplikasi Anda untuk verifikasi
Perbedaan antara akses online dan offline
Section titled “Perbedaan antara akses online dan offline”Ada beberapa cara untuk menggunakan Google Login dengan Capacitor. Berikut adalah tabel yang merangkum perbedaan antara keduanya:
| Akses online | Akses offline | |
|---|---|---|
| Memerlukan backend | ❌ | ✅ |
| Token akses jangka lama | ❌ | ✅ |
| Pengaturan mudah | ✅ | ❌ |
Jika Anda masih tidak tahu mana yang harus Anda pilih, pertimbangkan skenario berikut:
-
Anda ingin pengguna login, segera setelah itu Anda akan mengeluarkan JWT kustom kepadanya. Aplikasi Anda TIDAK akan memanggil API Google
Dalam kasus ini, pilih akses online.
-
Aplikasi Anda akan memanggil beberapa API Google dari klien, tetapi tidak pernah dari backend
Dalam kasus ini, pilih akses online
-
Aplikasi Anda akan memanggil beberapa API Google dari backend, tetapi hanya ketika pengguna aktif menggunakan aplikasi
Dalam kasus ini, pilih akses online
-
Aplikasi Anda akan memeriksa kalender pengguna secara berkala, bahkan ketika dia tidak aktif menggunakan aplikasi
Dalam kasus ini, pilih akses offline
Contoh backend untuk akses online
Section titled “Contoh backend untuk akses online”Dalam bagian tutorial ini, saya akan menunjukkan cara memvalidasi pengguna di backend Anda.
Contoh ini akan sangat sederhana dan akan didasarkan pada teknologi berikut:
Anda dapat menemukan kode untuk contoh ini di sini
Seperti yang Anda lihat:

Idenya cukup sederhana. Anda mengirim permintaan GET sederhana ke https://www.googleapis.com/oauth2/v3/tokeninfo dan ini mengembalikan apakah token valid atau tidak dan jika valid, memberikan Anda email pengguna. Ini juga memberikan Anda beberapa informasi lain tentang token pengguna

Dari sana, Anda dapat mengeluarkan JWT Anda sendiri kepada pengguna atau mengeluarkan semacam cookie sesi. Kemungkinannya tidak terbatas, untuk implementasi autentikasi akhir.
Jika Anda ingin memanggil API Google, saya sangat merekomendasikan untuk melihat Google’s OAuth 2.0 Playground. Dari sana Anda dapat dengan mudah melihat API apa yang dapat Anda panggil.
Menggunakan akses offline dengan backend Anda sendiri
Section titled “Menggunakan akses offline dengan backend Anda sendiri”Untuk menggunakan akses online, Anda akan memerlukan hal berikut:
- Server HTTP
Dalam contoh ini, saya akan menggunakan teknologi berikut untuk menyediakan akses offline di aplikasi saya:
-
LowDb (database sederhana)
Kode untuk contoh ini dapat ditemukan di sini
Adapun kode klien, 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()); }}