Actuellement, j'ai mis en place une fonction de connexion avec Firestore.
btnLogin.addEventListener('click', e => { // Get email and password const email = txtEmail.value; const pass = txtPassword.value; const auth = firebase.auth(); // Sign in if (email == "email_desired" | email == "email_desired2"){ const promise = auth.signInWithEmailAndPassword(email, pass); promise.catch(e => console.log(e.message)); } else{ console.log("Email is not accepted at login") } })
4 Réponses :
Vous pouvez bloquer les utilisateurs de la console Firebase en désactivant ces comptes dans la section d'authentification. p>
Bien que vous puissiez désactiver des comptes spécifiques dans la console Firebase, vous ne pouvez pas empêcher les comptes inconnus de vous inscrire / dans tout en permettant à des comptes connus de continuer. Ce n'est tout simplement pas la façon dont l'authentification Firebase fonctionne.
Si vous avez une connexion par courrier électronique / mot de passe activée, vous ne pouvez pas empêcher les gens d'essayer de créer des comptes et de vous connecter. Qu'est-ce que vous avez suggéré dans votre question n'est pas vraiment "Sécurité" car le code client peut être compromis. et contourné. Cependant, vous pouvez utiliser des règles de sécurité pour déterminer qui peut réellement accéder à votre base de données. Depuis que vous avez marqué ce Google-Cloud-Fireestore, je suppose que c'est ce que vous utilisez.
Firestore a service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid in ['uid1', 'uid2', 'uid3'];
}
}
}
"Vous pouvez arrêter" => "Vous ne pouvez pas arrêter"?
Dans votre application, ne donnez pas la possibilité de créer un nouvel utilisateur. Gardez uniquement votre application chausgée pour vous connecter avec courrier électronique et mot de passe. P>
Vous CAM créez manuellement des utilisateurs sur la console Web Firebase. P>
De cette façon, seuls les utilisateurs que vous avez créés pourra vous connecter. P>
S'il vous plaît écrivez en utilisant un bon anglais et grammaire
Elaborer un peu sur la réponse de Doug ci-dessus, j'ai trouvé quelque chose comme ça utile: P>
cms_users code> ou similaire où vous conserverez les utilisateurs qui devraient pouvoir accéder à l'application. Je stocke également des autorisations plus granulaires sur la table. Li>
- Créez une fonction de règle Firestore qui obtiendra si l'utilisateur demandeur apparaît ou non dans cette table, par exemple.
fonction getcmsuer () {return get (/ bases de données / $ (base de données) / Documents / CMS_USERS / $ (Demande.Auth.UID)); } code> li>
- Créer une règle garantissant que la collection est uniquement lisible par les utilisateurs qui se trouvent dans cette collection:
match / phoenixcms_users / {userid} {autoriser la lecture: Si getcmsuser ()! = null; } code> li>
- et maintenant, par exemple, si vous avez des données que vous souhaitez limiter lire / écrit uniquement à ces utilisateurs, quelque chose comme: li>
ol>
match / cms_secret_collection / {document = **} {autoriser la lecture: si getcmsuser ()! = null; Autoriser l'écriture: si getcmsuser ()! = null && getcmsuser (). Data.permissionLevel dans ["propriétaire", "admin"]; } code> p>
Dans l'exemple ci-dessus, vous pouvez voir que tous les utilisateurs «CMS» peuvent afficher les données, mais seuls certains utilisateurs de CMS avec le propriétaire ou l'autorisation d'administration peuvent écrire les données. P>