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

时间:2014-11-22 07:28:15

标签: django django-socialauth

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

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

2 个答案:

答案 0 :(得分:4)

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

但事情的答案是:

包含在'social_auth.backends.pipeline.associate.associate_by_email',

等设置中

答案 1 :(得分: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',
)