Dans mon site, il est possible de se connecter à travers:Auth sociale Python duplication des e-mails pour les utilisateurs différents
- nom d'utilisateur et mot de passe
- e-mail et mot de passe
- google auth 2
Où j'utilise l'utilisateur django intégré dans le système et python social auth.
Le problème:
Supposons que je créer le compte suivant:
Nom d'utilisateur: losimonassi e-mail: [email protected]
Puis, quand j'essaie de me connecter avec mon gmail (lorenzosimonassi @ gmail.com) python social auth crée un autre utilisateur avec le même e-mail. Ainsi, lorsque j'essaie de me connecter en utilisant mon adresse e-mail, le système d'authentification trouve deux e-mails similaires, ce qui génère une erreur. J'essaie de trouver un moyen que lorsque l'utilisateur tente de se connecter avec gmail, son e-mail est vérifié par rapport à la base de données et s'il existe déjà, le processus est arrêté avec une redirection et un message d'alerte (je pense être fait à travers le middleware).
Mais bien sûr, la vérification par rapport à la base de données ne devrait viser que les autres utilisateurs backend et les utilisateurs normaux, pour éviter de bloquer son propre login.
Je ne souhaite pas associer les comptes.
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'
)
Merci! J'ai fait de petits changements cela fonctionne bien !! –