Langsung ke konten

Setup Google Login

GitHub

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

Di bagian ini, Anda akan mengatur layar login yang ditampilkan oleh Google.

  1. Silakan buka console.cloud.google.com
  2. Klik pada pemilih proyek Pemilih Proyek Google Console
  3. Jika Anda belum memiliki proyek, silakan buat proyek baru.
    1. Klik pada New project Tombol New Project di Google Console
    2. Beri nama proyek Anda lalu klik Create Layar penamaan proyek yang menampilkan kolom nama dan tombol Create
    3. Pastikan Anda berada di proyek yang benar Nama proyek yang muncul di selector menunjukkan pemilihan proyek yang benar
  4. Mulai konfigurasi OAuth consent screen
    1. Klik kolom pencarian

      Kolom pencarian Google Console
    2. Cari OAuth consent screen dan klik pada item tersebut

      Hasil pencarian menampilkan opsi layar persetujuan OAuth
    3. Konfigurasi consent screen

      Klik pada create

      Pilihan tipe user OAuth consent screen dengan opsi External dan Internal
  5. Isi informasi tentang aplikasi Anda
    1. Mari kita mulai dengan App Information

      bagian App Information yang menampilkan field App name dan User support email
      • Please type in your App Name
      • Masukkan user support email
      1. Anda BISA tambahkan logo aplikasi.

        Bagian upload logo aplikasi di layar persetujuan OAuth
      2. Anda HARUS mengonfigurasi bagian App domain

        konfigurasi domain App dengan field authorized domains
      3. Anda WAJIB masukkan email developer

        Bagian info kontak developer dengan field email
      4. Klik pada save and continue

        Tombol Simpan dan Lanjutkan di bagian bawah form
  6. Konfigurasi scope
    1. Klik pada add or remove scopes

      Tombol tambah atau hapus scope di layar konfigurasi scope
    2. Pilih scope berikut dan klik update

      Dialog pemilihan scope dengan scope email dan profile terpilih
    3. Klik save and continue

      Tombol Simpan dan Lanjutkan di layar scope
  7. Tambah user testing
    1. Klik pada add users Tombol tambah user di bagian test users
    2. Masukkan email Google, tekan enter, lalu klik add Input email dan tombol Add untuk test users
    3. Klik save and continue Tombol Save and Continue di layar test users
  8. Klik back to dashboard Tombol Back to dashboard di bawah halaman selesai
  9. 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 onlineAkses offline
Membutuhkan backend❌✅
Token akses berumur panjang❌✅
Setup mudah✅❌

Jika Anda masih bingung harus memilih yang mana, pertimbangkan skenario berikut:

  1. Anda ingin user login, lalu segera memberikan custom JWT kepada mereka. Aplikasi Anda TIDAK AKAN memanggil Google APIs

    Dalam kasus ini, pilih online access.

  2. Aplikasi Anda akan memanggil beberapa Google APIs dari client, tetapi tidak pernah dari backend

    Dalam kasus ini, pilih online access

  3. Aplikasi Anda akan memanggil beberapa Google APIs dari backend, tetapi hanya saat user sedang aktif menggunakan aplikasi

    Dalam kasus ini, pilih online access

  4. Aplikasi Anda akan mengecek kalender user secara berkala, bahkan saat user tidak sedang aktif menggunakan aplikasi

    Dalam kasus ini, pilih offline access

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:

VS Code yang menampilkan code autentikasi Google yang memverifikasi token

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

Google OAuth Playground yang menampilkan respons informasi token beserta detail pengguna

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:

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.

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.