Saltare al contenuto

Configurazione di Google Login

GitHub

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

  • Un account Google

Configurazione generale

Nota

Per favore vai a

  1. console.cloud.google.com Clicca sul selettore del progetto
  2. console.cloud.google.com Selezionatore di progetto Google Console
  3. Se non hai già un progetto, per favore crea un nuovo progetto.
    1. Clicca su New project Nuovo progetto pulsante in Google Console
    2. Nomi il tuo progetto e clicca Create Schermo di nomina del progetto mostrante campo nome e pulsante Crea
    3. Assicurati di essere sul progetto giusto Nome del progetto mostrante in selezionatore indicando corretta selezione del progetto
  4. Inizia a configurare il OAuth consent screen
    1. Clicca sul campo di ricerca

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

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

      Clicca su create

      Scegli il tipo di utente OAuth per lo schermo di consenso con opzioni Esterno e Interno
  5. Inserisci le informazioni sulla tua app
    1. Iniziamo con il App Information

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

        Sezione di caricamento del logo dell'app in schermo di consenso OAuth
      2. Tu Dovresti configurare la App domain

        Sezione di configurazione del dominio dell'app con campo dominii autorizzati
      3. Tu DEVI inserire l'indirizzo email del developer

        Sezione di contatto del developer con campo email
      4. Clicca su save and continue

        Pulsante Salva e Continua in fondo alla pagina
  6. Configura gli ambiti di accesso
    1. Clicca su add or remove scopes

      Pulsante Aggiungi o rimuovi ambiti in schermo di configurazione degli ambiti di accesso
    2. Seleziona gli ambiti di seguito e clicca update

      Seleziona lo scopo del dialogo con email e profilo selezionati
    3. Clicca save and continue

      Pulsante Salva e Continua nella schermata degli accessi
  7. Aggiungi un utente di test
    1. Clicca su add users Pulsante Aggiungi utenti nella sezione degli utenti di test
    2. Inserisci la tua email Google, premi invio e clicca add Campo input email e pulsante Aggiungi per gli 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 nella parte inferiore della pagina di completamento
  9. Invia la tua app per la verifica

Ci sono diverse modalità per utilizzare Google Login con Capacitor. Ecco una tabella che riassume le differenze tra le due:

Accesso onlineAccesso offline
Richiede un backend
Token di accesso a lunga durata
Configurazione facile

Se non sai ancora quale scegliere, considera i seguenti scenari:

  1. Vuoi che l'utente si accedi, immediatamente dopo ti occuperai di emettergli 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 utilizzando l'app attivamente

    In questo caso, scegli l'accesso online

  4. Il tuo app controlla periodicamente il calendario 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 il code per questo esempio qui

Come puoi vedere:

Mostra Code di Visual Studio che verifica l'autenticazione Google code che verifica i token

L'idea è piuttosto semplice. Inviare una richiesta semplice a GET e questo ti restituisce se il token è valido o no e se lo è, ti dà l'indirizzo email dell'utente. Inoltre, ti dà alcune informazioni aggiuntive sul token dell'utente https://www.googleapis.com/oauth2/v3/tokeninfo Google OAuth Playground che mostra informazioni di risposta del token con dettagli dell'utente

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

Se desideri effettuare una chiamata a Google __CAPGO_KEEP_0__’, ti consiglio vivamente di guardare a

If you do want to call Google API’s, I would strongly recommend looking at . Da lì puoi facilmente vedere quali API puoi chiamare.Utilizzare l'accesso offline con il tuo backend

Sezione intitolata “Utilizzare l'accesso offline con il tuo backend”

Per utilizzare l'accesso offline avrai bisogno delle seguenti cose:

protectedTokens

  • Un server HTTP

In questo esempio, utilizzerò le seguenti tecnologie per fornire l'accesso offline nell'app:

Il code per questo esempio può essere trovato qui

Per quanto riguarda il client code, ha questo aspetto:

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'è SocialLogin.refresh() chiamata nell'app. Questo è 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 Google Login Setup per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzando @capgo/capacitor-login-social per la capacità nativa in Utilizzando @capgo/capacitor-login-social, @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social, @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 di implementazione in Autenticazione a due fattori.