2015-12-02 42 views
2

我怀疑错误的原因,但我不知道如何解决它,这是发生了什么事:Python社交认证。用户登录创建新的用户,而不是使用现有

我的本地数据库,然后在做了pg_dump在Heroku的生产数据库上的pg_restore。现在,当某个已有用户名的用户尝试登录(使用Facebook或Google等)时,PSA会创建一个新用户,并在末尾添加一个随机数,而不是登录现有用户。

例如,用户与用户名JohnSmith对日志与FB,因为JohnSmith对在数据库中已经存在,它会创建用户名新用户JohnSmit654f6b654

我想我来恢复数据库备份不知何故没”的pg_restore包括一些重要的psa表。我想知道我应该手动恢复哪些Python Social Auth表,以便它能正常工作。或者......也许这是错误的原因。谢谢你的帮助。

顺便说一句,我在Heroku上使用Django 1.8。

编辑

我的社会身份验证管道:

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', 
    'letrasclub.utils.create_profile' 
) 

其正常管道+ create_profile,去年仅管道为用户创建一个配置文件,如果它没有一个。它可能不是问题的根源,因为管道正在创建新用户,发生在'social.pipeline.user.create_user'

+0

你的'SOCIAL_AUTH_PIPELINE'设置包含什么? – Brandon

+0

@Brandon,Thnx寻求答案。添加管道到问题。 – alejoss

回答

0

好的,尼古拉F答案帮了我,但它不是这个问题的答案。

这就是解决了这个问题对我来说,以防万一有人发现了它有用:

旧的数据库上做一个manage.py dumpdata(这对社会AUTH表正确的数据,包括social_auth_usersocialauth

python manage.py dumpdata default > social.json 

这里的诀窍是要知道Python社交身份验证没有应用程序标签,但该命令适用于default

然后,将文件推到Heroku的跑:

heroku run python manage.py loaddata social.json 

这解决了这个问题。

+0

'python manage.py dumpdata social_auth> baza_social.json',刷新表格然后导入它,为我工作。 –

4

检查social_auth_usersocialauth表。它包含社交网络用户标识和django用户标识之间的链接。

+0

它们显示在'/ admin'模块的'PYTHON SOCIAL AUTH'中。谢谢! –

相关问题