Saltare al contenuto

Configurazione di accesso Google

GitHub

In questo guide, imparerai a configurare l'accesso Google con Capgo Social Login. Avrai bisogno delle seguenti informazioni per configurare l'accesso Google:

  • Un account Google

In questa parte, configurerai lo schermo di accesso visualizzato da Google.

  1. Per favore vai a console.cloud.google.com
  2. Clicca sul selettore del progetto Selettore del progetto Google Console
  3. Se non hai già un progetto, per favore crea un nuovo progetto.
    1. Clicca sul New project Pulsante Nuovo Progetto in Google Console
    2. Nome il tuo progetto e clicca Create Schermo di nome del progetto mostrante campo nome e pulsante Crea
    3. Assicurati di essere sul progetto giusto Nome del progetto mostrante nel selector indicando la selezione del progetto corretto
  4. Iniziare a configurare il OAuth consent screen
    1. Clicca sulla barra di ricerca

      Barra di ricerca del Console di Google
    2. Cerca OAuth consent screen e clicca su di esso

      Risultati della ricerca mostrante l'opzione dello schermo di consenso OAuth
    3. Configura lo schermo di consenso

      Clicca su create

      Selezione dello schermo di consenso OAuth con opzioni Esterno e Interno
  5. Riempi le informazioni sulla tua app
    1. Iniziamo con il App Information

      Informazioni sull'applicazione sezione mostrante nome dell'app e campo email di supporto dell'utente
      • Inserisci il tuo App Name
      • Enter the user support email
      1. Tu CAN Aggiungi il logo dell'app.

        App logo upload section in OAuth consent screen
      2. Tu Dovresti configurare la App domain

        sezione di configurazione del dominio dell'applicazione con campo autorizzazioni
      3. Tu Devi inserisci l'indirizzo email del developer

        fornire l'indirizzo email del developer
      4. Clicca su save and continue

        Salva e continua pulsante in fondo alla forma
  6. Configura gli ambiti
    1. Clicca su add or remove scopes

      Aggiungi o rimuovi gli ambiti pulsante nella schermata di configurazione degli ambiti
    2. Seleziona gli ambiti seguenti e clicca update

      Dialogo di selezione degli ambiti con email e profilo selezionati
    3. Clicca save and continue

      Salva e continua pulsante nella schermata degli ambiti
  7. Aggiungi un utente di prova
    1. Clicca su add users Aggiungi utenti pulsante nella sezione utenti di test
    2. Inserisci il tuo indirizzo email di Google, premi invio e clicca add Campo di input email e pulsante Aggiungi per utenti di test
    3. Clicca save and continue Pulsante Salva e Continua nella schermata degli utenti di test
  8. Clicca back to dashboard Pulsante Torna al dashboard in fondo alla pagina di completamento
  9. Invia la tua app per la verifica

Esistono diverse modalità per utilizzare il login con Google con Capacitor. Ecco una tabella che riassume le differenze tra le due opzioni:

Accesso onlineAccesso offline
Richiede un backend❌✅
Token di accesso a lunga durata❌✅
Easy setup✅❌

Se non hai ancora deciso quale scegliere, considera i seguenti casi di utilizzo.

  1. Vorresti che l'utente si accedi, immediatamente dopo che gli verrà emesso un JWT personalizzato. La tua app NON chiamerà le API di Google

    Scegli l'accesso online in questo caso.

  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 utilizzando attivamente l'app

    In questo caso, scegli l'accesso online

  4. La tua app controlla periodicamente l'agenda dell'utente, anche quando non sta utilizzando attivamente l'app

    In questo caso, scegli l'accesso offline

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

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

Puoi trovare l'code per questo esempio qui

Come puoi vedere:

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

L'idea è piuttosto semplice. Invi un semplice GET richiesta a https://www.googleapis.com/oauth2/v3/tokeninfo e questo ti restituisce se il token è valido o no e se lo è, ti dà l'email dell'utente. Inoltre, ti dà alcune altre informazioni sul token dell'utente

Google OAuth Playground mostrando informazioni di risposta del token con dettagli dell'utente

Da lì, potresti emettere l'utente con il tuo JWT o emettere un tipo di cookie di sessione. Le possibilità sono infinite, per l'implementazione di autenticazione finale.

If desideri effettuare una chiamata a Google API’, ti consiglio vivamente di esaminare Google OAuth 2.0 Playground. Da lì potrai facilmente vedere quali API puoi chiamare.

Per utilizzare l'accesso offline avrai bisogno dei seguenti:

  • Un server HTTP

Utilizzerò le seguenti tecnologie per fornire l'accesso offline nell'applicazione mia:

Il code per questo esempio può essere trovato qui

Per quanto riguarda il client code, assomiglia a questo:

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'è alcun SocialLogin.refresh() chiamata nell'app. Ciò è intenzionale. In modalità offline di Google, il refresh avviene dopo che il tuo backend scambia serverAuthCode e memorizza il token di refresh in modo sicuro.

Se stai utilizzando Configurazione di accesso Google per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzo di @capgo/capacitor-login-social per la capacità nativa in Utilizzo di @capgo/capacitor-login-social @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social @capgo/capacitor-chiave di accesso per il dettaglio di implementazione in @capgo/capacitor-passkey @capgo/capacitor-biometria-nativa per il dettaglio di implementazione in @capgo/capacitor-biometria-nativa, e Autenticazione a due fattori per il dettaglio di implementazione in Autenticazione a due fattori.