In meiner Website ist es möglich, um sich einzuloggen durch:Python Social Auth Duplizieren von E-Mails für verschiedene Benutzer
- Benutzername und Passwort
- E-Mail und Passwort
- google Auth 2
Wo verwende ich django Benutzer integrierte System und Python soziale Auth.
Das Problem:
Angenommen, schaffe ich das folgende Konto:
Benutzername: losimonassi E-Mail: [email protected]
Dann, wenn ich versuche mit meinem gmail anmelden (lorenzosimonassi @ gmail.com) Python Social Auth erstellt einen anderen Benutzer mit der gleichen E-Mail. Wenn ich versuche, mich mit meiner E-Mail anzumelden, findet das Authentifizierungssystem zwei ähnliche E-Mails, die einen Fehler auslösen.
Ich versuche einen Weg zu finden, dass, wenn der Benutzer versucht sich mit gmail anzumelden, seine E-Mail gegen die DB geprüft wird und wenn es bereits existiert, wird der Prozess mit einer Weiterleitung und einer Warnmeldung gestoppt (ich denke es könnte durch die Middleware gemacht werden).
Aber natürlich sollte die Überprüfung gegen die DB nur gegen andere Backends Benutzer und normale Benutzer überprüfen, um zu vermeiden, seine eigene Anmeldung zu blockieren.
Ich möchte die Konten nicht zuordnen.
settings.py
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'social.pipeline.user.get_username',
'social.pipeline.user.create_user',
#'social.pipeline.social_auth.associate_user',
#'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details'
)
Dank! Ich habe kleine Änderungen gemacht, es funktioniert gut !! –