2016-08-09 24 views
1

Ich habe ein benutzerdefiniertes Authentifizierungssystem mit FirebaseAuthentication-Token erstellt.Überprüfen, ob sich ein Benutzer bereits angemeldet hat

Meine Registrierung/Login fließen sollte wie folgt funktionieren:

  1. Benutzer drückt Login-Button
  2. Mein Server die Authentifizierungs-Token und sendet es an den Client bereits vorhanden
  3. Überprüfen Sie, ob der Benutzer erzeugt (in der 'Auth' Tabelle oder in meiner Datenbank)
    • Wenn true: melden Sie sich mit FIRAuth.auth()?.signIn(withCustomToken:...
    • Wenn false: ein Formular anzeigen, um benutzerdefinierte Daten (Name, etc ..)
      • Zeichen mit FIRAuth.auth()?.signIn(withCustomToken:...
      • speichern Sie die benutzerdefinierten Informationen zu meiner Datenbank
eingeben

Meine Frage ist: Wie kann ich herausfinden, ob der Benutzer bereits angemeldet ist? Wäre eine öffentlich zugängliche Datenbank mit nur uid's der Weg zu gehen?

Antwort

2

Das ist ziemlich meinungsbasiert, aber ja, ich würde eine eigenständige DB verwenden, die den Benutzernamen jedes Benutzers speichert, der sich angemeldet hat. Dann ist lediglich eine schnelle Webanforderung durch eine PHP-Datei erforderlich, die nach Zeilen fragt, die mit diesem Benutzernamen zurückgegeben werden.

0

Die Firebase-Anmeldemethode wird bei asynchronem Rückruf eine Rückmeldung geben.

FIRAuth.auth()?.signInWithEmail(email, password: password, completion: { (user , error) in 
    if let error = error { 
     print(error.localizedDescription) 
     return 
    } 
    self.signedIn(user) 
}) 

Wenn Sie noch nicht angemeldet sind. Der Fehler wird auszudrucken

There is no user record corresponding to this identifier. The user may have been deleted. 
+0

Ich weiß, aber ich bin mit 'Signin (withCustomToken:', das den Benutzer erstellt, wenn sie vorhanden sind und Zeichen den Benutzer nicht, wenn es vorhanden ist. – iMoritz

Verwandte Themen