Créer un utilisateur
Vous créez un nouvel utilisateur dans votre projet Firebase en appelant la méthode createUserWithEmailAndPassword
ou en connectant un utilisateur pour la première fois à l'aide d'un fournisseur d'identité fédéré, tel que Google Sign-In ou Facebook Login .
Vous pouvez également créer de nouveaux utilisateurs authentifiés par mot de passe à partir de la section Authentification de la console Firebase , sur la page Utilisateurs ou à l'aide du SDK Admin .
Obtenir l'utilisateur actuellement connecté
La méthode recommandée pour obtenir l'utilisateur actuel consiste à définir un observateur sur l'objet Auth :
Web modular API
import { getAuth, onAuthStateChanged } from "firebase/auth"; const auth = getAuth(); onAuthStateChanged(auth, (user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/auth.user const uid = user.uid; // ... } else { // User is signed out // ... } });
Web namespaced API
firebase.auth().onAuthStateChanged((user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/v8/firebase.User var uid = user.uid; // ... } else { // User is signed out // ... } });
En utilisant un observateur, vous vous assurez que l'objet Auth n'est pas dans un état intermédiaire, tel que l'initialisation, lorsque vous obtenez l'utilisateur actuel. Lorsque vous utilisez signInWithRedirect
, l'observateur onAuthStateChanged
attend la résolution getRedirectResult
avant de se déclencher.
Vous pouvez également obtenir l'utilisateur actuellement connecté à l'aide de la propriété currentUser
. Si un utilisateur n'est pas connecté, currentUser
est null :
Web modular API
import { getAuth } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/auth.user // ... } else { // No user is signed in. }
Web namespaced API
const user = firebase.auth().currentUser; if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/v8/firebase.User // ... } else { // No user is signed in. }
Obtenir le profil d'un utilisateur
Pour obtenir les informations de profil d'un utilisateur, utilisez les propriétés d'une instance de User
. Par exemple:
Web modular API
import { getAuth } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; if (user !== null) { // The user object has basic properties such as display name, email, etc. const displayName = user.displayName; const email = user.email; const photoURL = user.photoURL; const emailVerified = user.emailVerified; // The user's ID, unique to the Firebase project. Do NOT use // this value to authenticate with your backend server, if // you have one. Use User.getToken() instead. const uid = user.uid; }
Web namespaced API
const user = firebase.auth().currentUser; if (user !== null) { // The user object has basic properties such as display name, email, etc. const displayName = user.displayName; const email = user.email; const photoURL = user.photoURL; const emailVerified = user.emailVerified; // The user's ID, unique to the Firebase project. Do NOT use // this value to authenticate with your backend server, if // you have one. Use User.getIdToken() instead. const uid = user.uid; }
Obtenir les informations de profil spécifiques au fournisseur d'un utilisateur
Pour obtenir les informations de profil récupérées auprès des fournisseurs de connexion liés à un utilisateur, utilisez la propriété providerData
. Par exemple:
Web modular API
import { getAuth } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; if (user !== null) { user.providerData.forEach((profile) => { console.log("Sign-in provider: " + profile.providerId); console.log(" Provider-specific UID: " + profile.uid); console.log(" Name: " + profile.displayName); console.log(" Email: " + profile.email); console.log(" Photo URL: " + profile.photoURL); }); }
Web namespaced API
const user = firebase.auth().currentUser; if (user !== null) { user.providerData.forEach((profile) => { console.log("Sign-in provider: " + profile.providerId); console.log(" Provider-specific UID: " + profile.uid); console.log(" Name: " + profile.displayName); console.log(" Email: " + profile.email); console.log(" Photo URL: " + profile.photoURL); }); }
Mettre à jour le profil d'un utilisateur
Vous pouvez mettre à jour les informations de base du profil d'un utilisateur (le nom d'affichage de l'utilisateur et l'URL de la photo de profil) avec la méthode updateProfile
. Par exemple:
Web modular API
import { getAuth, updateProfile } from "firebase/auth"; const auth = getAuth(); updateProfile(auth.currentUser, { displayName: "Jane Q. User", photoURL: "https://example.com/jane-q-user/profile.jpg" }).then(() => { // Profile updated! // ... }).catch((error) => { // An error occurred // ... });
Web namespaced API
const user = firebase.auth().currentUser; user.updateProfile({ displayName: "Jane Q. User", photoURL: "https://example.com/jane-q-user/profile.jpg" }).then(() => { // Update successful // ... }).catch((error) => { // An error occurred // ... });
Définir l'adresse e-mail d'un utilisateur
Vous pouvez définir l'adresse e-mail d'un utilisateur avec la méthode updateEmail
. Par exemple:
Web modular API
import { getAuth, updateEmail } from "firebase/auth"; const auth = getAuth(); updateEmail(auth.currentUser, "user@example.com").then(() => { // Email updated! // ... }).catch((error) => { // An error occurred // ... });
Web namespaced API
const user = firebase.auth().currentUser; user.updateEmail("user@example.com").then(() => { // Update successful // ... }).catch((error) => { // An error occurred // ... });
Envoyer à un utilisateur un e-mail de vérification
Vous pouvez envoyer un e-mail de vérification d'adresse à un utilisateur avec la méthode sendEmailVerification
. Par exemple:
Web modular API
import { getAuth, sendEmailVerification } from "firebase/auth"; const auth = getAuth(); sendEmailVerification(auth.currentUser) .then(() => { // Email verification sent! // ... });
Web namespaced API
firebase.auth().currentUser.sendEmailVerification() .then(() => { // Email verification sent! // ... });
Vous pouvez personnaliser le modèle d'e-mail utilisé dans la section Authentification de la console Firebase , sur la page Modèles d'e-mail. Consultez Modèles d'e-mail dans le centre d'aide Firebase.
Il est également possible de transmettre l'état via une URL continue pour rediriger vers l'application lors de l'envoi d'un e-mail de vérification.
De plus, vous pouvez localiser l'e-mail de vérification en mettant à jour le code de langue sur l'instance d'authentification avant d'envoyer l'e-mail. Par exemple:
Web modular API
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web namespaced API
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
Définir le mot de passe d'un utilisateur
Vous pouvez définir le mot de passe d'un utilisateur avec la méthode updatePassword
. Par exemple:
Web modular API
import { getAuth, updatePassword } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; const newPassword = getASecureRandomPassword(); updatePassword(user, newPassword).then(() => { // Update successful. }).catch((error) => { // An error ocurred // ... });
Web namespaced API
const user = firebase.auth().currentUser; const newPassword = getASecureRandomPassword(); user.updatePassword(newPassword).then(() => { // Update successful. }).catch((error) => { // An error ocurred // ... });
Envoyer un e-mail de réinitialisation de mot de passe
Vous pouvez envoyer un e-mail de réinitialisation de mot de passe à un utilisateur avec la méthode sendPasswordResetEmail
. Par exemple:
Web modular API
import { getAuth, sendPasswordResetEmail } from "firebase/auth"; const auth = getAuth(); sendPasswordResetEmail(auth, email) .then(() => { // Password reset email sent! // .. }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // .. });
Web namespaced API
firebase.auth().sendPasswordResetEmail(email) .then(() => { // Password reset email sent! // .. }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
Vous pouvez personnaliser le modèle d'e-mail utilisé dans la section Authentification de la console Firebase , sur la page Modèles d'e-mail. Consultez Modèles d'e-mail dans le centre d'aide Firebase.
Il est également possible de transmettre l'état via une URL continue pour rediriger vers l'application lors de l'envoi d'un e-mail de réinitialisation de mot de passe.
De plus, vous pouvez localiser l'e-mail de réinitialisation du mot de passe en mettant à jour le code de langue sur l'instance d'authentification avant d'envoyer l'e-mail. Par exemple:
Web modular API
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web namespaced API
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
Vous pouvez également envoyer des e-mails de réinitialisation de mot de passe depuis la console Firebase.
Supprimer un utilisateur
Vous pouvez supprimer un compte utilisateur avec la méthode delete
. Par exemple:
Web modular API
import { getAuth, deleteUser } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; deleteUser(user).then(() => { // User deleted. }).catch((error) => { // An error ocurred // ... });
Web namespaced API
const user = firebase.auth().currentUser; user.delete().then(() => { // User deleted. }).catch((error) => { // An error ocurred // ... });
Vous pouvez également supprimer des utilisateurs de la section Authentification de la console Firebase , sur la page Utilisateurs.
Réauthentifier un utilisateur
Certaines actions sensibles en matière de sécurité, telles que la suppression d'un compte , la définition d'une adresse e-mail principale et la modification d'un mot de passe , nécessitent que l'utilisateur se soit récemment connecté. Si vous effectuez l'une de ces actions et que l'utilisateur s'est connecté il y a trop longtemps, le l'action échoue avec une erreur. Lorsque cela se produit, réauthentifiez l’utilisateur en obtenant de nouvelles informations d’identification de connexion de l’utilisateur et en transmettant les informations d’identification à reauthenticateWithCredential
. Par exemple:
Web modular API
import { getAuth, reauthenticateWithCredential } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; // TODO(you): prompt the user to re-provide their sign-in credentials const credential = promptForCredentials(); reauthenticateWithCredential(user, credential).then(() => { // User re-authenticated. }).catch((error) => { // An error ocurred // ... });
Web namespaced API
const user = firebase.auth().currentUser; // TODO(you): prompt the user to re-provide their sign-in credentials const credential = promptForCredentials(); user.reauthenticateWithCredential(credential).then(() => { // User re-authenticated. }).catch((error) => { // An error occurred // ... });
Importer des comptes d'utilisateurs
Vous pouvez importer des comptes d'utilisateurs à partir d'un fichier dans votre projet Firebase à l'aide de la commande auth:import
la CLI Firebase. Par exemple:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14