web-dev-qa-db-fra.com

Comment utiliser Firebase Simple Login avec e-mail et mot de passe

La connexion Firebase Simple fournit une option email/mot de passe , comment puis-je l'utiliser? À partir de la création d'un utilisateur, du stockage des données pour cet utilisateur, jusqu'à leur connexion et déconnexion.

32
Anant

Il y a trois étapes distinctes à effectuer (supposons que vous avez jQuery):

1. Configurez votre rappel

var ref = new Firebase("https://demo.firebaseio-demo.com");
var authClient = new FirebaseAuthClient(ref, function(error, user) {
  if (error) {
    alert(error);
    return;
  }
  if (user) {
    // User is already logged in.
    doLogin(user);
  } else {
    // User is logged out.
    showLoginBox();
  }
});

2. Enregistrement de l'utilisateur

function showLoginBox() {
  ...
  // Do whatever DOM operations you need to show the login/registration box.
  $("#registerButton").on("click", function() {
    var email = $("#email").val();
    var password = $("#password").val();
    authClient.createUser(email, password, function(error,  user) {
      if (!error) {
        doLogin(user);
      } else {
        alert(error);
      }
    });
  });
}

. Connexion utilisateur

function showLoginBox() {
  ...
  // Do whatever DOM operations you need to show the login/registration box.
  $("#loginButton").on("click", function() {
    authClient.login("password", {
      email: $("#email").val(),
      password: $("#password").val(),
      rememberMe: $("#rememberCheckbox").val()
    });
  });
}

Lorsque la connexion se termine avec succès, l'appel que vous avez enregistré à l'étape 1 sera appelé avec l'objet utilisateur correct, auquel cas nous appelons doLogin(user) qui est une méthode que vous devrez implémenter.

La structure des données utilisateur est très simple. Il s'agit d'un objet contenant les propriétés suivantes:

email: Adresse e-mail de l'utilisateur id: ID numérique unique (incrémentation automatique) pour l'utilisateur

FirebaseAuthClient authentifiera automatiquement vos firebsae pour vous, aucune autre action n'est requise. Vous pouvez maintenant utiliser quelque chose comme ce qui suit dans vos règles de sécurité:

{
  "rules": {
    "users": {
      "$userid": {
        ".read": "auth.uid == $userid",
        ".write": "auth.uid == $userid"
      }
    }
  }
}

Cela signifie que si mon ID utilisateur est 42, je peux seulement écrire ou lire à example.firebaseio-demo.com/users/42 - lorsque je suis connecté - et personne d'autre.

Notez que Simple Login ne stocke aucune information supplémentaire sur l'utilisateur autre que son identifiant et son e-mail. Si vous souhaitez stocker des données supplémentaires sur l'utilisateur, vous devez le faire vous-même (probablement dans le rappel de succès pour createUser). Vous pouvez stocker ces données comme vous le feriez normalement pour toutes les données dans Firebase - faites juste attention à qui peut lire ou écrire dans ces données!

41
Anant

Juste au cas où quelqu'un est atteint à ce fil et cherche un exemple d'application utilisant l'authentification Firebase. Voici deux exemples

var rootRef = new Firebase('https://docs-sandbox.firebaseio.com/web/uauth');
......
.....
....

http://jsfiddle.net/firebase/a221m6pb/embedded/result,js/

http://www.42id.com/articles/firebase-authentication-and-angular-js/

4
ATHER