我正在使用django social auth进行社交登录。 如果用户使用gmail id注册,则在下次使用gmail社交登录访问登录时,将为同一用户创建两个用户,这些用户具有不同的用户名但电子邮件ID相同。 现在,当用户尝试使用此gmail id登录时,将抛出MultipleObjectsReturned错误。
有没有办法在记录时检查用户的电子邮件ID,如果它已经存在,则将其与该用户关联。
答案 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',
)