Social auth django:多个用户与相同的电子邮件ID冲突

问题描述 投票:0回答:2

我正在使用django social auth进行社交登录。如果用户使用gmail id注册,则在下次使用gmail社交登录访问登录时,将为同一用户创建两个用户,这些用户具有不同的用户名但电子邮件ID相同。现在,当用户尝试使用此gmail id登录时,会抛出MultipleObjectsReturned错误。

有没有办法在登录时检查用户的电子邮件ID,如果它已经存在,则将其与该用户关联。

django django-socialauth
2个回答
4
投票

您可能必须在settings.py文件中显示您提供的PIPELINE。

但事情的答案是:

包含在像'social_auth.backends.pipeline.associate.associate_by_email',这样的设置中


0
投票

在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.social_auth.associate_by_email',
    'social.pipeline.user.create_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details',
)
© www.soinside.com 2019 - 2024. All rights reserved.