Vai al contenuto

Configurazione Google Login

GitHub

In questa guida imparerai a configurare Google Login con Capgo Social Login. Per configurare Google Login ti serve quanto segue:

  • Un account Google

In questa sezione configurerai la schermata di login gestita da Google.

  1. Please go to console.cloud.google.com
  2. Clicca sul selettore del progetto Selettore progetti Google Console
  3. Se non hai ancora un progetto, procedi a creare un nuovo progetto.
    1. Clicca su New project Pulsante New Project nella Google Console
    2. Dai un nome al progetto e clicca su Create Schermata di naming del progetto con campo nome e tasto Create
    3. Assicurati di essere sul progetto corretto Nome del progetto nel selettore che conferma la scelta corretta
  4. Inizia a configurare il OAuth consent screen
    1. Clicca sulla barra di ricerca

      Barra di ricerca della Google Console
    2. Cerca OAuth consent screen e cliccaci sopra

      Risultati della ricerca con l'opzione OAuth consent screen
    3. Configura la schermata di consenso

      Clicca su create

      Selezione del tipo di utente nella schermata di consenso OAuth con opzioni External e Internal
  5. Inserisci le informazioni sulla tua app
    1. Iniziamo con la App Information

      sezione App Information che mostra i campi App name e User support email
      • Inserisci il tuo App Name
      • Inserisci il/la user support email
      1. Tu PUÒ aggiungere il logo dell'app.

        Sezione upload logo app nella schermata di consenso OAuth
      2. Tu DOVRESTI configurare la App domain

        sezione App domain configuration con il campo authorized domains
      3. Tu È NECESSARIO fornire l'email dello sviluppatore

        Sezione contatti sviluppatore con campo email
      4. Clicca su save and continue

        Pulsante Salva e Continua in fondo al form
  6. Configura gli scope
    1. Clicca su add or remove scopes

      Pulsante per aggiungere o rimuovere scope nella schermata di configurazione
    2. Seleziona i seguenti scope e clicca update

      Dialogo di selezione scope con email e profile selezionati
    3. Clicca su save and continue

      Pulsante Salva e Continua nella schermata scope
  7. Aggiungi un utente di test
    1. Clicca su add users Pulsante per aggiungere utenti nella sezione test users
    2. Inserisci la tua email Google, premi invio e clicca su add Campo input email e pulsante Add per i test users
    3. Clicca su save and continue Pulsante Save and Continue nella schermata test users
  8. Clicca su back to dashboard Pulsante Back to dashboard in fondo alla pagina di completamento
  9. Invia la tua app per la verifica

Esistono diversi modi per utilizzare Google Login con Capacitor. Ecco una tabella che riassume le differenze tra i due:

Accesso onlineAccesso offline
Richiede un backend❌✅
Access token a lunga durata❌✅
Easy setup✅❌

If you still do not know which one you should choose, please consider the following scenarios:

  1. Vuoi che l'utente faccia il login per ricevere immediatamente un JWT personalizzato. La tua app NON chiamerà le API di Google

    In questo caso, scegli l'accesso online.

  2. La tua app chiamerà alcune API di Google dal client, ma mai dal backend

    In questo caso, scegli l'accesso online

  3. La tua app chiamerà alcune API di Google dal backend, ma solo quando l'utente sta usando l'app

    In questo caso, scegli l'accesso online

  4. La tua app controllerà periodicamente il calendario dell'utente, anche quando non sta usando l'app

    In questo caso, scegli l'accesso offline

In questa parte del tutorial, ti mostrerò come validare l'utente sul tuo backend.

Questo esempio sarà molto semplice e si baserà sulle seguenti tecnologie:

Puoi trovare il code per questo esempio qui

Come puoi vedere:

VS Code che mostra l'autenticazione Google code che verifica i token

L'idea è piuttosto semplice. Invia una semplice GET richiesta a https://www.googleapis.com/oauth2/v3/tokeninfo questo ti restituisce se il token è valido o meno e, in caso positivo, l'email dell'utente. Fornisce anche altre informazioni sul token dell'utente

Google OAuth Playground che mostra la risposta del token con i dettagli dell'utente

Da lì, potresti rilasciare all'utente il tuo JWT o un cookie di sessione. Le possibilità per l'implementazione finale dell'auth sono infinite.

Se vuoi chiamare le API di Google, ti consiglio vivamente di dare un'occhiata a Google OAuth 2.0 Playground. Da lì puoi vedere facilmente quali API puoi chiamare.

Per usare l'offline access avrai bisogno di quanto segue:

  • Un server HTTP

In questo esempio, userò le seguenti tecnologie per fornire l'offline access nella mia app:

Il code per questo esempio si trova qui

Per quanto riguarda il client code, è così:

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

Nota cosa manca qui: non c'è una SocialLogin.refresh() call nell'app. È intenzionale. In modalità Google offline, il refresh avviene dopo che il tuo backend scambia serverAuthCode e salva il refresh token in modo sicuro.

Se stai usando Configurazione Google Login per pianificare i flussi di autenticazione e account, collegandolo a Utilizzo di @capgo/capacitor-social-login per la funzionalità nativa in Utilizzo di @capgo/capacitor-social-login, @capgo/capacitor-social-login per i dettagli di implementazione in @capgo/capacitor-social-login, @capgo/capacitor-passkey per i dettagli di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric per i dettagli di implementazione in @capgo/capacitor-native-biometric, e Autenticazione a due fattori per i dettagli sull'implementazione dell'autenticazione a due fattori.