Langsung ke konten

Pengaturan Google Login

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

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

  1. Silakan buka console.cloud.google.com
  2. Klik pada pemilih proyek Google Console Project Selector
  3. Jika Anda belum memiliki proyek, silakan buat proyek baru.
    1. Klik pada New project New Project button in Google Console
    2. Beri nama proyek Anda dan klik Create Project naming screen showing name field and Create button
    3. Pastikan bahwa Anda berada di proyek yang benar Project name showing in the selector indicating correct project selection
  4. Mulai mengonfigurasi OAuth consent screen
    1. Klik pada bilah pencarian

      Google Console search bar
    2. Cari OAuth consent screen dan klik padanya

      Search results showing OAuth consent screen option
    3. Konfigurasikan layar persetujuan

      Klik pada create

      OAuth consent screen user type selection with External and Internal options
  5. Isi informasi tentang aplikasi Anda
    1. Mari kita mulai dengan App Information

      App Information section showing App name and User support email fields
      • Silakan ketik App Name Anda
      • Masukkan user support email
      1. Anda DAPAT menambahkan logo aplikasi.

        App logo upload section in OAuth consent screen
      2. Anda SEBAIKNYA mengonfigurasi App domain

        App domain configuration section with authorized domains field
      3. Anda HARUS menyediakan email pengembang

        Developer contact information section with email field
      4. Klik pada save and continue

        Save and Continue button at bottom of form
  6. Konfigurasikan scope
    1. Klik pada add or remove scopes

      Add or remove scopes button in scopes configuration screen
    2. Pilih scope berikut dan klik update

      Scope selection dialog with email and profile scopes selected
    3. Klik save and continue

      Save and Continue button in scopes screen
  7. Tambahkan pengguna uji
    1. Klik pada add users Add users button in test users section
    2. Masukkan email Google Anda, tekan enter, dan klik add Email input field and Add button for test users
    3. Klik save and continue Save and Continue button in test users screen
  8. Klik back to dashboard Back to dashboard button at bottom of completion page
  9. Kirim aplikasi Anda untuk verifikasi

Ada beberapa cara untuk menggunakan Google Login dengan Capacitor. Berikut adalah tabel yang merangkum perbedaan antara keduanya:

Akses onlineAkses offline
Memerlukan backend
Token akses jangka lama
Pengaturan mudah

Jika Anda masih tidak tahu mana yang harus Anda pilih, pertimbangkan skenario berikut:

  1. 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.

  2. Aplikasi Anda akan memanggil beberapa API Google dari klien, tetapi tidak pernah dari backend

    Dalam kasus ini, pilih akses online

  3. Aplikasi Anda akan memanggil beberapa API Google dari backend, tetapi hanya ketika pengguna aktif menggunakan aplikasi

    Dalam kasus ini, pilih akses online

  4. Aplikasi Anda akan memeriksa kalender pengguna secara berkala, bahkan ketika dia tidak aktif menggunakan aplikasi

    Dalam kasus ini, pilih akses offline

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:

VS Code showing Google authentication code that verifies tokens

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

Google OAuth Playground showing token information response with user details

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:

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());
}
}