FirebaseAuthInvalidCredentialsException bei Verwendung von "Ein Konto pro E-Mail-Adresse"

8
  

... wenn Sie nicht mehrere Konten mit derselben E-Mail zulassen   Adresse kann ein Benutzer kein neues Konto erstellen, das sich mit a anmeldet   Google-Konto mit der E-Mail-Adresse [email protected], falls bereits vorhanden   ein Konto, das sich mit der E-Mail-Adresse [email protected] anmeldet und a   Passwort.

Ich konnte mich mit dem Google-Provider für die gleiche E-Mail-Adresse anmelden, die bereits über den E-Mail-Anbieter registriert wurde. Der Google-Provider hat den E-Mail-Anbieter ersetzt. Letzterer meldet sich dann nicht mit FirebaseAuthInvalidCredentialsException: Das Kennwort ist ungültig oder der Benutzer hat kein Passwort. .

Schritte zum Reproduzieren:

Melden Sie sich bei Ihrem E-Mail-Anbieter an - & gt; Abmelden - & gt; Melden Sie sich mit dem Google-Anbieter an - & gt; Melden Sie sich ab

Grundsätzlich sollte es nicht möglich sein, einen Anbieter durch einen anderen zu ersetzen und FirebaseAuthUserCollisionException zu werfen: Die E-Mail-Adresse wird bereits von einem anderen Konto verwendet.

Ein Code, den ich für die An- / Abmeldung verwende:

%Vor%

Danke!

    
Ivan V 03.06.2016, 17:03
quelle

2 Antworten

3

Um die Anmelde-UI-Schritte zu optimieren und die Kontosicherheit zu verbessern, hat die Firebase-Authentifizierung das Konzept des "vertrauenswürdigen Anbieters", bei dem der Identitätsanbieter auch der E-Mail-Dienstanbieter ist. Beispielsweise ist Google der vertrauenswürdige Anbieter für @ gmail.com-Adressen, Yahoo ist der vertrauenswürdige Anbieter für @ yahoo.com-Adressen und Microsoft für @ outlook.com-Adressen.

Im Modus "Ein Konto pro E-Mail-Adresse" versucht die Firebase-Authentifizierung, das Konto basierend auf der E-Mail-Adresse zu verknüpfen. Wenn sich ein Benutzer bei einem vertrauenswürdigen Anbieter anmeldet, meldet er sich sofort beim Konto an, da wir wissen, dass der Benutzer die E-Mail-Adresse besitzt.

Wenn ein Konto mit der gleichen E-Mail-Adresse existiert, aber mit anderen Anmeldeinformationen (z. B. Kennwort oder nicht vertrauenswürdiger Anbieter) erstellt wurde, werden die vorherigen Anmeldeinformationen aus Sicherheitsgründen entfernt.

Ein Phisher (der nicht der Besitzer der E-Mail-Adresse ist) erstellt möglicherweise das ursprüngliche Konto. Wenn die anfängliche Berechtigung entfernt wird, kann der Phisher nicht mehr auf das Konto zugreifen. Der legitime Benutzer kann ein Passwort einrichten, indem er den Flow zum Zurücksetzen des Passworts durchgeht, wo sie beweisen muss, dass sie die E-Mail-Adresse besitzt.

    
Jin Liu 06.06.2016 17:17
quelle
2

Mehrere Konten pro E-Mail-Adresse erstellen einen neuen Benutzer mit einer anderen Benutzer-ID für verschiedene Anbieter, die die gleiche E-Mail verwenden.

Um neu zu erstellen:

  1. Melden Sie sich mit Google E-Mail x @ x
  2. an
  3. Melden Sie sich mit Facebook email x @ x
  4. an
  5. Erstellen Sie ein E-Mail-Passwort-Konto x @ x

Jetzt erhalten Sie 3 verschiedene Benutzer.

Wenn Sie die empfohlenen einzelnen Konten pro E-Mail verwenden, befinden sich die drei oben genannten Anbieter im selben Benutzer (eine UID).

Wenn Sie zum ersten Mal das Google-Konto x @ x erstellen und versuchen, sich mit einem neuen Facebook-Konto mit der E-Mail-Adresse x @ x anzumelden, erhalten Sie einen Fehler, dass eine Verknüpfung erforderlich ist, um fortzufahren. Sie müssen dann den ersten Google-Nutzer anmelden und den neuen Facebook-Nutzer damit verknüpfen.

    
bojeil 04.06.2016 17:08
quelle