Configurazione Google Login
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Introduzione
Sezione intitolata “Introduzione”In questa guida imparerai a configurare Google Login con Capgo Social Login. Per configurare Google Login ti serve quanto segue:
- Un account Google
Configurazione generale
Sezione: “Configurazione generale”In questa sezione configurerai la schermata di login gestita da Google.
- Please go to console.cloud.google.com
- Clicca sul selettore del progetto
- Se non hai ancora un progetto, procedi a creare un nuovo progetto.
- Clicca su
New project
- Dai un nome al progetto e clicca su
Create
- Assicurati di essere sul progetto corretto
- Clicca su
- Inizia a configurare il
OAuth consent screen-
Clicca sulla barra di ricerca
-
Cerca
OAuth consent screene cliccaci sopra
-
Configura la schermata di consenso
Clicca su
create
-
- Inserisci le informazioni sulla tua app
-
Iniziamo con la
App Information
- Inserisci il tuo
App Name - Inserisci il/la
user support email
-
Tu PUÒ aggiungere il logo dell'app.
-
Tu DOVRESTI configurare la
App domain
-
Tu È NECESSARIO fornire l'email dello sviluppatore
-
Clicca su
save and continue
- Inserisci il tuo
-
- Configura gli scope
-
Clicca su
add or remove scopes
-
Seleziona i seguenti scope e clicca
update
-
Clicca su
save and continue
-
- Aggiungi un utente di test
- Clicca su
add users
- Inserisci la tua email Google, premi invio e clicca su
add
- Clicca su
save and continue
- Clicca su
- Clicca su
back to dashboard
- Invia la tua app per la verifica
Differenze tra accesso online e offline
Sezione intitolata “Differenze tra accesso online e offline”Esistono diversi modi per utilizzare Google Login con Capacitor. Ecco una tabella che riassume le differenze tra i due:
| Accesso online | Accesso offline | |
|---|---|---|
| Richiede un backend | ❌ | ✅ |
| Access token a lunga durata | ❌ | ✅ |
| Easy setup | ✅ | ❌ |
If you still do not know which one you should choose, please consider the following scenarios:
-
Vuoi che l'utente faccia il login per ricevere immediatamente un JWT personalizzato. La tua app NON chiamerà le API di Google
In questo caso, scegli l'accesso online.
-
La tua app chiamerà alcune API di Google dal client, ma mai dal backend
In questo caso, scegli l'accesso online
-
La tua app chiamerà alcune API di Google dal backend, ma solo quando l'utente sta usando l'app
In questo caso, scegli l'accesso online
-
La tua app controllerà periodicamente il calendario dell'utente, anche quando non sta usando l'app
In questo caso, scegli l'accesso offline
Un esempio di backend per l'accesso online
Sezione intitolata “Un esempio di backend per l'accesso online”In questa parte del tutorial, ti 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:
L'idea è piuttosto semplice. Invia una semplice GET richiesta a https://www.googleapis.com/oauth2/v3/tokeninfo questo ti restituisce se il token è valido o meno e, in caso positivo, l'email dell'utente. Fornisce anche altre informazioni sul token dell'utente
Da lì, potresti rilasciare all'utente il tuo JWT o un cookie di sessione. Le possibilità per l'implementazione finale dell'auth sono infinite.
Se vuoi chiamare le API di Google, ti consiglio vivamente di dare un'occhiata a Google OAuth 2.0 Playground. Da lì puoi vedere facilmente quali API puoi chiamare.
Usare l'offline access con il proprio backend
Sezione intitolata “Usare l'offline access con il proprio backend”Per usare l'offline access avrai bisogno di quanto segue:
- Un server HTTP
In questo esempio, userò le seguenti tecnologie per fornire l'offline access nella mia app:
-
LowDb (un database semplice)
Il code per questo esempio si trova qui
Per quanto riguarda il client code, è così:
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'è una SocialLogin.refresh() call nell'app. È intenzionale. In modalità Google offline, il refresh avviene dopo che il tuo backend scambia serverAuthCode e salva il refresh token in modo sicuro.
Continua dalla configurazione di Google Login
Sezione intitolata “Continua dalla configurazione di Google Login”Se stai usando Configurazione Google Login per pianificare i flussi di autenticazione e account, collegandolo a Utilizzo di @capgo/capacitor-social-login per la funzionalità nativa in Utilizzo di @capgo/capacitor-social-login, @capgo/capacitor-social-login per i dettagli di implementazione in @capgo/capacitor-social-login, @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 sull'implementazione dell'autenticazione a due fattori.