Autentica con Firebase utilizzando un sistema di autenticazione personalizzato
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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();
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-25 UTC.
[null,null,["Ultimo aggiornamento 2025-07-25 UTC."],[],[],null,["# Authenticate with Firebase Using a Custom Authentication System\n\n\u003cbr /\u003e\n\nYou can integrate Firebase Authentication with a custom authentication system by\nmodifying your authentication server to produce custom signed tokens when a user\nsuccessfully signs in. Your app receives this token and uses it to authenticate\nwith Firebase.\n\nBefore you begin\n----------------\n\n1. If you haven't already, follow the steps in the [Get started](/docs/auth/flutter/start) guide.\n2. [Install and configure the Firebase Admin SDK](/docs/admin/setup). Be sure to [initialize the SDK](/docs/admin/setup#initialize-sdk) with the correct credentials for your Firebase project.\n\nAuthenticate with Firebase\n--------------------------\n\n1. When users sign in to your app, send their sign-in credentials (for\n example, their username and password) to your authentication server. Your\n server checks the credentials and, if they are valid,\n [creates a custom Firebase token](/docs/auth/admin/create-custom-tokens)\n and sends the token back to your app.\n\n2. After you receive the custom token from your authentication server, pass it\n to `signInWithCustomToken()` to sign in the user:\n\n try {\n final userCredential =\n await FirebaseAuth.instance.signInWithCustomToken(token);\n print(\"Sign-in successful.\");\n } on FirebaseAuthException catch (e) {\n switch (e.code) {\n case \"invalid-custom-token\":\n print(\"The supplied token is not a Firebase custom auth token.\");\n break;\n case \"custom-token-mismatch\":\n print(\"The supplied token is for a different Firebase project.\");\n break;\n default:\n print(\"Unknown error.\");\n }\n }\n\nNext steps\n----------\n\nAfter a user creates a new account, this account is stored as part of your\nFirebase project, and can be used to identify a user across every app in your\nproject, regardless of what sign-in method the user used.\n\nIn your apps, you can get the user's basic profile information from the\n`User` object. See [Manage Users](/docs/auth/flutter/manage-users).\n\nIn your Firebase Realtime Database and Cloud Storage Security Rules, you can\nget the signed-in user's unique user ID from the `auth` variable, and use it to\ncontrol what data a user can access.\n\nYou can allow users to sign in to your app using multiple authentication\nproviders by [linking auth provider credentials](/docs/auth/flutter/account-linking)) to an\nexisting user account.\n\nTo sign out a user, call `signOut()`: \n\n await FirebaseAuth.instance.signOut();"]]