Vai alla navigazione

Configurazione di Google Login

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 la schermata di accesso visualizzata 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 su New project Nuovo Progetto pulsante nel 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 selezione indicante corretta selezione del progetto
  4. Inizia a configurare il OAuth consent screen
    1. Clicca sul campo di ricerca

      Campo di ricerca del Google Console
    2. Cerca per 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

      Selezione del tipo di utente dello schermo di consenso OAuth con opzioni Esterno e Interno
  5. Riempire le informazioni sulla tua app
    1. Iniziamo con la App Information

      Sezione Informazioni sull'app mostrante il nome dell'app e l'indirizzo email del supporto utente
      • Per favore, inserisci il tuo App Name
      • Inserisci il user support email
      1. Tu PUOI aggiungere il logo dell'app.

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

        Sezione di configurazione dell'app con campo dominio autorizzato
      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 alla fine della pagina
  6. Configura i permessi
    1. Clicca su add or remove scopes

      Pulsante Aggiungi o rimuovi permessi nella schermata di configurazione dei permessi
    2. Seleziona i seguenti permessi e clicca update

      Dialogo di selezione dei permessi con email e profilo selezionati
    3. Clicca save and continue

      Salva e continua nel pannello delle scoping
  7. Aggiungi un utente di test
    1. Clicca su add users Aggiungi utenti pulsante nella sezione degli utenti di test
    2. Inserisci il tuo indirizzo email di Google, clicca invio e clicca add Campo di input email e pulsante Aggiungi per gli utenti di test
    3. Clicca save and continue Salva e continua nel pannello degli utenti di test
  8. Clicca back to dashboard Torna al pannello di controllo pulsante in fondo alla pagina di completamento
  9. Invia il tuo 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 lungo termine
Impostazione facile

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

  1. Vuoi che l'utente si accedi, subito dopo ti ritroverai a emettere 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 in modo attivo

    In questo caso, scegli l'accesso online

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

    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:

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

The idea is rather simple. You send a simple 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'indirizzo email dell'utente. Inoltre, ti dà alcune altre informazioni sul token dell'utente

Google OAuth Playground che mostra informazioni sul token di risposta con dettagli dell'utente

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

Se desideri effettivamente chiamare Google API’, ti consiglio fortemente di guardare a Google’s OAuth 2.0 Playground. Dalla lì puoi facilmente vedere quali API puoi chiamare.

Per utilizzare l'accesso offline avrai bisogno dei seguenti:

  • Un server HTTP

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

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'è nulla SocialLogin.refresh() chiamare nell'app. Ciò è intenzionale. In modalità offline di Google, il refresh avviene dopo che il tuo backend scambia e memorizza il token di refresh in modo sicuro. 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 Utilizzare @capgo/capacitor-login-social per la capacità nativa in Utilizzare @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.