Configurazione di Google Login
Copiare un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Introduzione
Sezione intitolata “Introduzione”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
Configurazione generale
Sottosezione intitolata “Configurazione generale”In questa parte, configurerai la schermata di accesso visualizzata da Google.
- Per favore vai a console.cloud.google.com
- Clicca sul selettore del progetto
- Se non hai già un progetto, per favore crea un nuovo progetto.
- Clicca su
New project
- Nomi il tuo progetto e clicca
Create
- Assicurati di essere sul progetto giusto
- Clicca su
- Inizia a configurare il
OAuth consent screen-
Clicca sulla barra di ricerca
-
Cerca per
OAuth consent screene clicca su di esso
-
Configura lo schermo di consenso
Clicca su
create
-
- Riempire le informazioni sulla tua app
-
Iniziamo con la sezione
App Information
- Per favore, inserisci il tuo
App Name - Inserisci il
user support email
-
Tu PUOI aggiungere il logo dell'app.
-
Tu DEVI configurare la
App domain
-
Tu DEVI inserire l'indirizzo email del developer
-
Clicca su
save and continue
- Per favore, inserisci il tuo
-
- Configura gli ambiti
-
Clicca su
add or remove scopes
-
Seleziona gli ambiti seguenti e clicca su
update
-
Clicca
save and continue
-
- Aggiungi un utente di test
- Clicca su
add users
- Inserisci la tua email Google, premi invio e clicca
add
- Clicca
save and continue
- Clicca su
- Clicca
back to dashboard
- Invia la tua app per la verifica
Differenze tra accesso online e accesso offline
Sezione intitolata “Differenze tra accesso online e accesso offline”Ci sono diverse modalità per utilizzare Google Login con Capacitor. Ecco una tabella che riassume le differenze tra le due:
| Accesso online | Accesso offline | |
|---|---|---|
| Richiede un backend | ❌ | ✅ |
| Token di accesso a lungo termine | ❌ | ✅ |
| Esempio di configurazione facile | ✅ | ❌ |
Se ancora non sai quale scegliere, considera i seguenti scenari:
-
Vuoi che l'utente si accedi, subito dopo ti conviene emettergli 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 utilizzando l'app in modo attivo
In questo caso scegli l'accesso online
-
La tua app controlla periodicamente il calendario dell'utente, anche quando non sta utilizzando l'app in modo attivo
In questo caso, scegli l'accesso offline
Un esempio di backend per l'accesso online
Sottosezione intitolata “Un esempio di backend per l'accesso online”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
Come puoi vedere:
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
Dal lì, potresti rilasciare all'utente il tuo proprio JWT o rilasciare un tipo di cookie di sessione. Le possibilità sono infinite, per l'implementazione finale dell'autenticazione.
Se desideri effettivamente chiamare Google API’, ti consiglio fortemente di guardare Google’s OAuth 2.0 Playground. 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”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:
-
LowDb (una semplice database)
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 serverAuthCode e memorizza il token di refresh in modo sicuro.
Continua da Google Login Setup
Sottosezione intitolata “Continua da Google Login Setup”Se stai utilizzando Google Login Setup per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzare @capgo/capacitor-social-login per la capacità nativa in Utilizzare @capgo/capacitor-social-login, @capgo/capacitor-social-login per il dettaglio 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 di implementazione in Autenticazione a due fattori.