Saltare al contenuto

Impostazione di accesso Google

GitHub

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

  • 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 di Google Console
  3. Se non hai già un progetto, per favore crea un nuovo progetto.
    1. Clicca sul 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 selezione indicando corretta selezione del progetto
  4. Inizia 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 essa

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

      Scegli il tipo di utente OAuth con le opzioni Esterno e Interno create

      Assumerò che stai sviluppando un'applicazione aperta al pubblico, quindi userò il tipo di utente. Seleziona il tipo di utente che ti conviene di più E clicca
  5. Compilare le informazioni relative all'app
    1. Iniziare con la sezione App Information

      Informazioni sull'app che mostra il campo Nome dell'app e Indirizzo email del supporto utente
      • Inserisci il tuo App Name
      • Inserisci il user support email
      1. Voi CAN aggiungere il logo dell'applicazione.

        Nota
      2. DEVI configurare la Configurazione del dominio dell'applicazione con campo dominio autorizzato App domain

        Nota
      3. context: you_definition, Page/area: Sito web di marketing Capgo. Ruolo: Lungo paragrafo di marketing o legale. Visto in: pagina disclaimer.astro, pagina return.astro. Chiave di messaggio you_definition (You Definition). DEVE fornire l'indirizzo email del sviluppatore

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

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

      Aggiungi o rimuovi pulsante delle autorizzazioni nella schermata di configurazione delle autorizzazioni
    2. Seleziona le seguenti autorizzazioni e clicca update

      Dialogo di selezione delle autorizzazioni con email e profilo selezionati
    3. Clicca save and continue

      Pulsante Salva e Continua nella schermata delle autorizzazioni
  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 al pannello di controllo 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 lungo termine
Configurazione facile

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

  1. Vuoi che l'utente si accedi, subito dopo ti occorre 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à alcuni 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 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:

Potrai trovare il code per questo esempio qui

Ecco cosa vedete:

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'indirizzo email dell'utente. Inoltre, ti dà alcune informazioni aggiuntive 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 momento in cui, potresti rilasciare all'utente il tuo JWT o rilasciare un tipo di cookie di sessione. Le possibilità sono infinite, per l'implementazione di autenticazione finale.

Se desiderate effettuare una chiamata a Google __CAPGO_KEEP_0__’, vi consiglio vivamente di consultare

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

Utilizzare l'accesso offline con il tuo backend

Sezione intitolata “L'uso dell'accesso offline con il tuo backend”

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

  • 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

As per il client code, sembra 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. 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 Utilizza @capgo/capacitor-social-login per la capacità nativa in Utilizza @capgo/capacitor-social-login, @capgo/capacitor-social-login for the implementation detail in @capgo/capacitor-social-login, @capgo/capacitor-passkey for the implementation detail in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric for the implementation detail in @capgo/capacitor-native-biometric, and Due fattori di autenticazione per i dettagli di implementazione in Due fattori di autenticazione.