2015-07-09 22 views
5

Nie mogę sobie chyba wyobrazić, jak zresetować obiekt Firebase Auth po wczytaniu go po raz pierwszy.Autoryzacja Firebase Auth nie jest aktualizowana po zresetowaniu hasła

Szukam wartości bool true w auth.password.isTemporaryPassword, która zmusza użytkownika do zresetowania hasła. Po wykonaniu przez użytkownika tej procedury i zresetowaniu, auth.password.isTemporaryPassword pozostaje true.

Jedynym sposobem, w jaki znalazłem to, jest zalogowanie użytkownika i ponowne zalogowanie, które odświeża obiekt auth.

Hearts

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

resetu:

$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 pozostaje true aż ponownie zalogować użytkownika, w którym wydaje się hacky.

+1

Zamiast opisując swój kod, należy podać minimalny fragment, który reprodukuje problem do Twojego pytania. W takim razie będzie ci łatwiej pomóc. (patrz http://stackoverflow.com/help/mcve) –

Odpowiedz

0

powinny mieć możliwość korzystania z funkcji onAuth do nasłuchiwania zmian do uwierzytelniania Stan:

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 { 

    } 
}); 
Powiązane problemy