我正在使用django social auth进行社交登录。如果用户使用gmail id注册,则在下次使用gmail社交登录访问登录时,将为同一用户创建两个用户,这些用户具有不同的用户名但电子邮件ID相同。现在,当用户尝试使用此gmail id登录时,会抛出MultipleObjectsReturned错误。
有没有办法在登录时检查用户的电子邮件ID,如果它已经存在,则将其与该用户关联。
您可能必须在settings.py
文件中显示您提供的PIPELINE。
但事情的答案是:
包含在像'social_auth.backends.pipeline.associate.associate_by_email',
这样的设置中
在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',
)