Configurazione di accesso Google
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Introduzione
Sottosezione 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 lo schermo di accesso visualizzato 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 sul
New project
- Nome il tuo progetto e clicca
Create
- Assicurati di essere sul progetto giusto
- Clicca sul
- Iniziare a configurare il
OAuth consent screen-
Clicca sulla barra di ricerca
-
Cerca
OAuth consent screene clicca su di esso
-
Configura lo schermo di consenso
Clicca su
create
-
- Riempi le informazioni sulla tua app
-
Iniziamo con il
App Information
- Inserisci il tuo
App Name - Enter the
user support email
-
Tu CAN Aggiungi il logo dell'app.
-
Tu Dovresti configurare la
App domain
-
Tu Devi inserisci l'indirizzo email del developer
-
Clicca su
save and continue
- Inserisci il tuo
-
- Configura gli ambiti
-
Clicca su
add or remove scopes
-
Seleziona gli ambiti seguenti e clicca
update
-
Clicca
save and continue
-
- Aggiungi un utente di prova
- Clicca su
add users
- Inserisci il tuo indirizzo email di 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 offline
Section titled “Differences between online access and offline access”Esistono diverse modalità per utilizzare il login con Google con Capacitor. Ecco una tabella che riassume le differenze tra le due opzioni:
| Accesso online | Accesso offline | |
|---|---|---|
| Richiede un backend | ❌ | ✅ |
| Token di accesso a lunga durata | ❌ | ✅ |
| Easy setup | ✅ | ❌ |
Se non hai ancora deciso quale scegliere, considera i seguenti casi di utilizzo.
-
Vorresti che l'utente si accedi, immediatamente dopo che gli verrà emesso un JWT personalizzato. La tua app NON chiamerà le API di Google
Scegli l'accesso online in questo caso.
-
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 attivamente l'app
In questo caso, scegli l'accesso online
-
La tua app controlla periodicamente l'agenda dell'utente, anche quando non sta utilizzando attivamente l'app
In questo caso, scegli l'accesso offline
Esempio di backend per l'accesso online
Sezione intitolata “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:
Puoi trovare l'code per questo esempio qui
Come puoi vedere:
L'idea è piuttosto semplice. Invi un semplice 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'email dell'utente. Inoltre, ti dà alcune altre informazioni sul token dell'utente
Da lì, potresti emettere l'utente con il tuo JWT o emettere un tipo di cookie di sessione. Le possibilità sono infinite, per l'implementazione di autenticazione finale.
If desideri effettuare una chiamata a Google API’, ti consiglio vivamente di esaminare Google OAuth 2.0 Playground. Da lì potrai facilmente vedere quali API puoi chiamare.
Utilizzo dell'accesso offline con il tuo backend
Sottosezione intitolata “Utilizzo dell'accesso offline con il tuo backend”Per utilizzare l'accesso offline avrai bisogno dei seguenti:
- Un server HTTP
Utilizzerò le seguenti tecnologie per fornire l'accesso offline nell'applicazione mia:
-
LowDb (una semplice database)
Il code per questo esempio può essere trovato qui
Per quanto riguarda il client code, assomiglia a 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. Ciò è 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.
Continua da Google Login Setup
Sezione intitolata “Continua dall'impostazione di Google Login”Se stai utilizzando Configurazione di accesso Google per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzo di @capgo/capacitor-login-social per la capacità nativa in Utilizzo di @capgo/capacitor-login-social @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social @capgo/capacitor-chiave di accesso per il dettaglio di implementazione in @capgo/capacitor-passkey @capgo/capacitor-biometria-nativa per il dettaglio di implementazione in @capgo/capacitor-biometria-nativa, e Autenticazione a due fattori per il dettaglio di implementazione in Autenticazione a due fattori.