2013-03-01 9 views

risposta

41

Ci sono tre fasi distinte da eseguire (supponiamo di avere jQuery):

1. Configurare il callback

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. Registrazione Utente

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); 
     } 
    }); 
    }); 
} 

3. Accesso utente

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() 
    }); 
    }); 
} 

Quando il login completata correttamente, la chiamata si è registrato nella fase 1 sarà chiamato con l'oggetto utente corretto, al punto che noi chiamiamo doLogin(user) che è un metodo che si dovrà attuare .

La struttura dei dati utente è molto semplice. Si tratta di un oggetto contenente le seguenti proprietà:

email: Indirizzo e-mail dell'utente id: numerica (incremento automatico) ID univoco per l'utente

FirebaseAuthClient autenticherà automaticamente il firebsae per voi, non ulteriori azioni è obbligatorio. È ora possibile utilizzare qualcosa come il seguente nelle regole di sicurezza:

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

Ciò significa, se il mio ID utente è di 42, solo io posso scrivere o leggere a example.firebaseio-demo.com/users/42 - quando sono entrato - e nessun altro .

Si noti che Login semplice non memorizza alcuna informazione aggiuntiva sull'utente oltre al proprio ID ed e-mail. Se si desidera memorizzare dati aggiuntivi sull'utente, è necessario farlo personalmente (probabilmente nella callback di successo per createUser). È possibile memorizzare questi dati come normalmente si memorizzerebbero i dati in Firebase - basta fare attenzione a chi può leggere o scrivere su questi dati!

+4

ho creato un jsFiddle sulla base di questo qui: http: // jsfiddle.net/dirkk0/LAJKX/ – dirkk0

+2

Esiste comunque la possibilità di effettuare una verifica tramite e-mail per evitare che l'e-mail falsa venga utilizzata dagli utenti? – vzhen

+2

La verifica dell'email è in arrivo, guarda la mailing list di Firebase per un annuncio! – Anant