Puoi integrare Firebase Authentication con un sistema di autenticazione personalizzato Modificando il server di autenticazione per produrre token firmati personalizzati quando esegue l'accesso. La tua app riceve questo token e lo utilizza per l'autenticazione con Firebase.
Prima di iniziare
- Se non lo hai già fatto, segui i passaggi nella Guida introduttiva.
- Installa e configura l'SDK Admin Firebase. Assicurati di inizializzare l'SDK. con le credenziali corrette per il progetto Firebase.
Esegui l'autenticazione con Firebase
Quando gli utenti accedono alla tua app, invia le loro credenziali di accesso (ad ad esempio nome utente e password) al tuo server di autenticazione. Il server controlla le credenziali e, se sono valide, crea un token Firebase personalizzato e lo restituisce all'app.
Dopo aver ricevuto il token personalizzato dal tuo server di autenticazione, passalo a
signInWithCustomToken()
per far accedere l'utente:try { final userCredential = await FirebaseAuth.instance.signInWithCustomToken(token); print("Sign-in successful."); } on FirebaseAuthException catch (e) { switch (e.code) { case "invalid-custom-token": print("The supplied token is not a Firebase custom auth token."); break; case "custom-token-mismatch": print("The supplied token is for a different Firebase project."); break; default: print("Unknown error."); } }
Passaggi successivi
Dopo che un utente ha creato un nuovo account, questo viene archiviato nel progetto Firebase e può essere utilizzato per identificare un utente in ogni app del progetto, indipendentemente dal metodo di accesso utilizzato.
Nelle tue app, puoi recuperare le informazioni di base del profilo dell'utente dall'oggetto
User
. Vedi Gestire gli utenti.
In Firebase Realtime Database e regole di sicurezza di Cloud Storage, puoi
recupera l'ID utente unico dell'utente che ha eseguito l'accesso dalla variabile auth
e utilizzalo per
controllare a quali dati può accedere un utente.
Puoi consentire agli utenti di accedere alla tua app utilizzando più autenticazioni di provider collegando le credenziali del provider di autenticazione) a un account utente esistente.
Per scollegare un utente, chiama signOut()
:
await FirebaseAuth.instance.signOut();