Ich verwende Python-Social-Auth mit Django. Ich möchte über Facebook autorisieren, aber vorher habe ich mich bereits als Standard angemeldet (E-Mail, Passwort) mit E-Mail, die Facebook verwendet. Kann ich ein Facebook-Konto mit einem registrierten Konto verknüpfen? Ich habe versucht zu suchen, aber nichts
Antworten:
6 für die Antwort № 1Prüfen Verknüpfen Sie Benutzer per E-Mail, das sollte erklären, wie es geht.
Verknüpfen Sie Benutzer per E-Mail
Manchmal ist es wünschenswert, dass soziale Konten automatisch zugeordnet werden, wenn die E-Mail bereits mit einem Benutzerkonto übereinstimmt.
Zum Beispiel, wenn sich ein Benutzer bei seinem angemeldet hatFacebook-Konto, dann abgemeldet und beim nächsten Mal versucht, Google OAuth2 für die Anmeldung zu verwenden. Es könnte nett sein (wenn beide soziale Websites dieselbe E-Mail-Adresse konfiguriert haben), dass der Benutzer in sein ursprüngliches, vom Facebook-Backend erstelltes Konto gelangt.
Dieses Szenario ist möglich, wenn die Pipeline-Funktion "associate_by_email" wie folgt aktiviert wird:
SOCIAL_AUTH_PIPELINE = ( "social_core.pipeline.social_auth.social_details", "social_core.pipeline.social_auth.social_uid", "social_core.pipeline.social_auth.auth_allowed", "social_core.pipeline.social_auth.social_user", "social_core.pipeline.user.get_username", "social_core.pipeline.social_auth.associate_by_email", # <--- enable this one "social_core.pipeline.user.create_user", "social_core.pipeline.social_auth.associate_user", "social_core.pipeline.social_auth.load_extra_data", "social_core.pipeline.user.user_details", )
Diese Funktion ist standardmäßig deaktiviert, danicht 100% sicher, diesen Prozess mit allen Backends zu automatisieren. Nicht alle Anbieter werden Ihr E-Mail-Konto validieren, und andere Benutzer könnten davon profitieren.
Nehmen Sie zum Beispiel Benutzer A, der auf Ihrer Site registriert istmit der E-Mail foo@bar.com. Dann registriert sich ein böswilliger Benutzer bei einem anderen Anbieter, der seine E-Mail-Adresse nicht mit demselben Konto überprüft. Schließlich wendet sich dieser Benutzer an Ihre Website (die diesen Anbieter unterstützt) und meldet sich an. Da die E-Mail-Adresse identisch ist, übernimmt der böswillige Benutzer die Kontrolle über das Konto von Benutzer A.
BEARBEITEN: Verknüpfen Sie fixierte und kopierte Dokumentendetails in diese Antwort.