2017-04-15 2 views
5

Ich habe eine funktionierende Authentifizierung mit dem angularfire2, ich frage mich nur, ob es eine andere Möglichkeit gibt zu überprüfen, ob der Benutzer authentifiziert wird, nachdem der Benutzer kürzlich angemeldet ohne den Server zu treffen? Die Art, wie ich dies tue, ist wie diesÜberprüfen, ob Benutzer noch in angularfire2 authentifiziert ist

isAuthenticated():boolean{ 
this.af.auth.subscribe(data => { 
    if(data){ 
    // User is authenticated 
    return true; 
    } 
}); 
} 

Jede Hilfe

Edit 1 geschätzt wird.

entschied ich mich immer noch den Original-Code zu verwenden, um zu überprüfen, ob der Benutzer vor kurzem angemeldeten Was @cartant vorgeschlagen ist gut genug, wenn Sie den Benutzer beim Start Ihrer Anwendung nicht überprüfen, weil es möglicherweise null zurückgibt, wie in den offiziellen Dokumenten des Firebase angegeben. Die Art und Weise, wie ich es hier verwendet habe, ist, dass ich Menüpunkte habe, die nur authentifizierten Benutzern angezeigt werden sollen und firebase.auth().currentUser immer null beim ersten Laden der Seite zurückgibt.

+0

was ist, dass Sie sind immer. irgendein Fehler oder? – Aravind

+0

@Aravind Ich bekomme keinen Fehler. Ich möchte nur wissen, ob es eine Möglichkeit gibt zu überprüfen, ob der Benutzer angemeldet ist, ohne die this.af.authscribe() – brijmcq

Antwort

7

AngularFire2 wird derzeit einig Refactoring und wesentliche Teile seiner Authentifizierung API zugunsten entfernt werden gehen, um die Firebase Web-API in Verbindung mit AngularFire2 zu verwenden. Es gibt mehr Informationen in this issue.

Das von Ihnen verwendete Observable bleibt in AngularFire2 und Sie können es abonnieren, um Benachrichtigungen über Änderungen im Authentifizierungsstatus zu erhalten.

Wenn jedoch alles, was Sie daran interessiert sind, ist die Bestimmung, ob oder ob nicht zum gegenwärtigen Zeitpunkt ein Benutzer authentifiziert ist, gibt es eine currentUser Eigenschaft in der Web-API Firebase ist, dass Sie das wird sagen:

import * as firebase from "firebase"; 
... 
console.log(firebase.auth().currentUser); 
+0

zu verwenden, danke für Ihre Antwort. Ja, ich habe diesen Code auch irgendwo gesehen. Ich dachte nur, dass es in angularfire eine API geben könnte. Ich muss nur auf ein Update warten. – brijmcq

+1

Keine Sorge. Der Punkt, den ich in der Antwort versuchte, war, dass AngularFire2 umstrukturiert wird, um zu vermeiden, dass einfach Dinge umschlossen werden, die mit der zugrunde liegenden Firebase Web API gemacht werden können und dass die Verwendung der beiden in Verbindung gefördert wird. Ein Äquivalent von "currentUser" wird also nicht zu AngularFire2 hinzugefügt und Sie können jetzt genauso gut den "currentUser" der Firebase Web API verwenden. – cartant

+0

danke nochmal! Ich werde mir das merken. – brijmcq

Verwandte Themen