2015-07-09 28 views
5

Non riesco a capire come resettare l'oggetto Auth Firebase una volta che è stato caricato per la prima volta.Firebase Auth non si aggiorna dopo il reset della password

Sto cercando il valore bool in auth.password.isTemporaryPassword che obbliga l'utente a reimpostare la password. Una volta che l'utente ha eseguito questa procedura e ripristinato, lo auth.password.isTemporaryPassword rimane true.

L'unico modo che ho trovato è di disconnettere l'utente e registrarlo di nuovo che aggiorna l'oggetto auth.

username: password

var ref = new Firebase(environment); 

$firebaseAuth(ref) 
.$authWithPassword({ 
    email: email, 
    password: password 
},sessionObj) 
.then(function(authData) { 
    if (password.isTemporaryPassword === true) { 
     $state.go('resetpassword'); 
    } 
}) 
.catch(function(error) { 
    deferred.reject(error); 
}); 

Reset:

$scope.reset.oldPassword   = "oldPass"; 
$scope.reset.newPassword   = "newPass"; 
$scope.reset.email    = "usermail"; 

ref.changePassword($scope.reset, function(err) { 
    if(err) { 
     ... 
    } 
    else { 
     $state.go('home') 
    } 
}) 

password.isTemporaryPassword rimane true fino a quando accedo l'utente di nuovo che sembra hacky.

+1

Invece di descrivere il codice, si prega di includere un frammento minimo che riproduce il problema nella vostra domanda. Sarà molto più facile aiutarti allora. (vedi http://stackoverflow.com/help/mcve) –

risposta

0

si dovrebbe essere in grado di utilizzare la funzione onAuth di ascoltare per le modifiche all'autenticazione Stato:

ref.onAuth(function(authData) { 

    //user authenticated & needs to change her password 
    if(authData && authData.password.isTemporaryPassword) { 
     $state.go('resetpassword'); 
    } 

    //else user is logged in with valid password 
    else if(authData) { 

    } 

    //else user is logged out 
    else { 

    } 
}); 
Problemi correlati