Saltare al contenuto

Configurazione di Google Login

GitHub

In questo manuale, imparerai a configurare l'accesso con Google con Capgo Social Login. Per configurare l'accesso con Google, avrai bisogno dei seguenti elementi:

  • Un account Google

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

  1. Per favore, vai a console.cloud.google.com
  2. Seleziona il progetto Selettore del progetto Google Console
  3. Se non hai già un progetto, per favore crea un nuovo progetto.
    1. Seleziona New project Nuovo progetto pulsante in Google Console
    2. Dai un nome al tuo progetto e seleziona Create Pantalla di nome del progetto mostrante campo nome e pulsante Crea
    3. Assicurati di essere sul progetto giusto Nome del progetto mostrante in selettore indicando corretta selezione del progetto
  4. Inizia a configurare il OAuth consent screen
    1. Seleziona la barra di ricerca

      Barra di ricerca di Google Console
    2. Cerca e clicca su di essa OAuth consent screen Clicca su di essa

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

      Clicca su create

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

      Informazioni sull'app che mostra il nome dell'app e il campo email di supporto dell'utente
      • Per favore, inserisci il tuo App Name
      • Inserisci il user support email
      1. Puoi CAN aggiungere il logo dell'app.

        Sezione di caricamento del logo dell'app nella schermata di consenso OAuth
      2. Tu DEVI configurare il App domain

        Sezione di configurazione del dominio dell'app con campo dominio autorizzato
      3. DEVI fornire l'indirizzo email del sviluppatore Sezione di informazioni di contatto per lo sviluppatore con campo email

        Clicca su
      4. Salva e continua save and continue

        Configura gli ambiti
  6. Clicca su
    1. Aggiungi o rimuovi gli ambiti add or remove scopes

      button in schermo di configurazione degli ambiti
    2. Seleziona i seguenti ambiti e clicca update

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

      Pulsante Salva e Continua nella schermata degli ambiti
  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, clicca invio e clicca add Campo di 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 Torna alla dashboard pulsante in fondo alla pagina di completamento
  9. Invia la tua app per la verifica

Esistono 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 valido
Impostazione facile

In questo caso scegli l'accesso online.

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

    In questo caso scegli l'accesso online

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

    Vuoi che l'utente si accedi, subito dopo ti troverai a rilasciare a lui un JWT personalizzato. La tua app NON chiamerà le API di Google

  3. In questo caso scegli l'accesso online.

    In questo caso, scegli l'accesso online

  4. La tua app controlla periodicamente il calendario dell'utente, anche quando non sta utilizzando 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

As potresti vedere:

VS Code mostrando 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'email dell'utente. Inoltre, ti dà alcune altre informazioni sul token dell'utente https://www.googleapis.com/oauth2/v3/tokeninfo Google OAuth Playground mostrando informazioni di risposta del token con dettagli dell'utente

Dal 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 effettivamente chiamare Google __CAPGO_KEEP_0__’, ti consiglio fortemente di guardare a

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

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

Using offline access with your own backend

In modo da poter utilizzare l'accesso offline avrai bisogno delle seguenti cose:

  • Un server HTTP

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

Il code per questo esempio può essere trovato qui

In quanto per 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-social-login per la capacità nativa in Utilizzando @capgo/capacitor-social-login, @capgo/capacitor-social-login per i dettagli di implementazione in @capgo/capacitor-login-social @capgo/capacitor-passkey per i dettagli di implementazione in @capgo/capacitor-passkey @capgo/capacitor-biometric-nativo per i dettagli di implementazione in @capgo/capacitor-biometric-nativo, e Autenticazione a due fattori per i dettagli di implementazione in Autenticazione a due fattori.