Comment utiliser l'authentification Firebase avec plusieurs méthodes de connexion et une authentification basée sur les rôles ?
P粉574695215
2023-09-05 12:18:10
<p>Je crée une application React.js avec nodejs comme backend et je souhaite utiliser ces méthodes d'authentification pour me connecter par e-mail/mot de passe, me connecter à l'aide de Google et me connecter à l'aide du téléphone. Maintenant, je souhaite conserver l'utilisateur pendant qu'il signe. Unicité Pour chacun d'entre eux, j'obtiendrai également d'autres détails, comme lorsque l'utilisateur s'inscrit en utilisant l'e-mail/mot de passe, j'obtiendrai également le numéro de téléphone de l'utilisateur et je ne veux pas que l'utilisateur utilise ce numéro de téléphone en se connectant à l'aide du téléphone Créer une autre méthode de compte. </p>
<p>Le deuxième problème est que mon application dispose de 3 rôles d'utilisateur : Utilisateur, Ventes et Administrateur. Il existe un formulaire d'inscription différent pour chaque utilisateur. Lorsqu'un utilisateur utilisant le courrier électronique s'inscrit en tant que vendeur, je souhaite également que cet utilisateur puisse s'inscrire en tant qu'utilisateur en utilisant le même courrier électronique. Désormais, lorsque j'utilise le SDK Firebase dans mon application React, il enverra une erreur à l'utilisateur car elle existe déjà. </p>
<p>L'authentification Firebase peut résoudre ce problème, je souhaite que l'utilisateur soit unique et je souhaite que l'authentification basée sur les rôles soit activée.
J'utilise Firestore comme base de données</p>
Comme doc, "Vous pouvez autoriser les utilisateurs à se connecter à votre application à l'aide de plusieurs fournisseurs d'authentification en liant les informations d'identification du fournisseur d'authentification à un compte d'utilisateur existant. Quelle que soit l'authentification, ils peuvent tous se connecter à votre application via le même utilisateur Firebase. ID pour identifier l'utilisateur avec le fournisseur qu'il a utilisé pour se connecter. Voir aussi
linkWithCredential()
的文档a> 和linkWithPhoneNumber()
méthode.Vous pouvez utiliser soit des déclarations personnalisées basées sur (vous pouvez ajouter plusieurs déclarations, une par rôle) soit une documentation Firestore
. Cependant, vous implémenterez le mécanisme de sélection des rôles par l'utilisateur (vous avez mentionné "différents formulaires d'inscription" dans votre question) et l'interface graphique correspondante s'affichera vous-même dans votre application. 🎜