django allauth facebook leitet zur Anmeldung um, wenn die abgerufene E-Mail mit der E-Mail eines vorhandenen Benutzers übereinstimmt.

Ich kann mich erfolgreich über Google und Facebook mit Django (1.6.4) und Allauth (0.16.1) und Python (2.7) anmelden, und zwar mit der erwarteten Weiterleitung zu settings.LOGIN_REDIRECT_URL, falls noch kein Benutzer mit der E-Mail-Adresse abgerufen wurde Anbieter. Wenn jedoch bereits ein Benutzer mit derselben E-Mail-Adresse wie der vom Anbieter abgerufene vorhanden ist (fb oder goolge), wird er immer zu / accounts / social / signup / # umgeleitet.= Anmeldeseite fragen:

Sie verwenden Ihr Facebook / Google-Konto, um sich bei example.com anzumelden. Als letzten Schritt füllen Sie bitte das folgende Formular aus: E-Mail wird automatisch ausgefüllt.

Ich habe mit getestetSOCIALACCOUNT_AUTO_SIGNUP = True oderFalse, aber keine Wirkung. Ich habe versucht, auth_type für Facebook zu ändern, sehe aber keine anderen Optionen als "Neuanfrage".

Ich habe die folgenden settings.py:

ACCOUNT_AUTHENTICATION_METHOD = "email" # Defaults to username_email
ACCOUNT_USERNAME_REQUIRED = False       # Defaults to True
ACCOUNT_EMAIL_REQUIRED = True           # Defaults to False
SOCIALACCOUNT_QUERY_EMAIL = ACCOUNT_EMAIL_REQUIRED
SOCIALACCOUNT_AUTO_SIGNUP = True
SOCIALACCOUNT_EMAIL_REQUIRED = False
ACCOUNT_ADAPTER = "myproject.adapter.MyLoginAccountAdapter"
LOGIN_URL = "/"
LOGIN_REDIRECT_URL = "/users/{id}/mytags"

Wie kann ich diese Umleitung zur Anmeldung unterbinden und die Anbieteranmeldung in einem bereits vorhandenen Benutzer mit derselben E-Mail-Adresse auf LOGIN_REDIRECT_URL umleiten lassen?

HINWEIS: Dies habe ich versucht

Ich habe get_login_redirect_url in myproject.adapter.MyLoginAccountAdapter bereits aktualisiert. Funktioniert nur für Google, aber nicht für Facebook, wie von behauptetDjango allauth - Legt die Facebook-Weiterleitung festIch habe versucht "Anmeldeformular mit Allauth umgehen"aber funktioniert nicht

AKTUALISIERUNG:

Danke dafürAntwortenIch habe festgestellt, dass die Anmeldung über Facebook in einem Fall zur Anmeldeseite umleitet, wenn die aus dem Facebook-Profil abgerufene E-Mail mit der E-Mail-ID des bereits vorhandenen Benutzers übereinstimmt.Ich habe die Frage aktualisiert, um den obigen Fall zu berücksichtigen.Um das Problem zusammenzufassen: Dies ist ein Fall, in dem mehrere Anbieterkonten dieselbe E-Mail-ID haben und Django-Allauth keine austauschbare Anmeldung zulässt (dh, wenn ich mich einmal über Facebook registriert habe, muss ich bei Django-Allauth nur Facebook und nicht Google oder verwenden alles andere Anbieter mit gleicher E-Mail-ID)Ich habe es mit gelöst@receiver(pre_social_login) undraise ImmediateHttpResponse (siehe meine Antwort) mit nützlichen Links:diese unddieses

Danke, Amit

Antworten auf die Frage(1)

Ihre Antwort auf die Frage