Python 使用facebook登录后不会创建用户(可能是同名情况)
我试图学习如何将python social auth集成到django项目中 这似乎是可行的,因为我可以登录到我的测试应用程序,但它表明用户从未存储到数据库中,我不明白为什么,因为我没有收到任何错误 这是我的密码Python 使用facebook登录后不会创建用户(可能是同名情况),python,django,facebook,python-social-auth,Python,Django,Facebook,Python Social Auth,我试图学习如何将python social auth集成到django项目中 这似乎是可行的,因为我可以登录到我的测试应用程序,但它表明用户从未存储到数据库中,我不明白为什么,因为我没有收到任何错误 这是我的密码 INSTALLED_APPS = ( ... 'social.apps.django_app.default', 'messaging' ) AUTHENTICATION_BACKENDS = ( 'social.backends.facebook.F
INSTALLED_APPS = (
...
'social.apps.django_app.default',
'messaging'
)
AUTHENTICATION_BACKENDS = (
'social.backends.facebook.FacebookOAuth2',
'social.backends.email.EmailAuth',
'django.contrib.auth.backends.ModelBackend',
)
SOCIAL_AUTH_FACEBOOK_KEY='XX'
SOCIAL_AUTH_FACEBOOK_SECRET='YYY'
FACEBOOK_EXTENDED_PERMISSIONS = ['email']
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
LOGIN_URL = '/login/'
LOGIN_REDIRECT_URL = '/home/'
LOGOUT_REDIRECT_URL = '/'
URL_PATH = ''
SOCIAL_AUTH_STRATEGY = 'social.strategies.django_strategy.DjangoStrategy'
SOCIAL_AUTH_STORAGE = 'social.apps.django_app.default.models.DjangoStorage'
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'social.apps.django_app.context_processors.backends',
'social.apps.django_app.context_processors.login_redirect',
)
我的想法是为用户使用django默认模型,所以我没有为它定义任何扩展
你知道为什么登录时不创建用户吗
更新
我注意到一些奇怪的东西,至少对我来说是这样。在执行syncdb时创建的第一个管理员用户与我用来测试应用程序的facebook帐户名和姓相同。我认为它不会被使用,必须创建另一个用户,但在检查数据库时,我看到auth\u用户。最后一次登录
会根据使用facebook执行的登录进行相应更新
所以我有两个问题:
快速回答您的问题:
python-social-auth
将获取当前登录的用户并将社交帐户与之关联(如果有任何用户登录),否则将创建一个新帐户。但是,如果该社交帐户已在您的站点中使用,它将登录相关用户,或者删除一个异常,表明该社交帐户已在使用
您可以通过以下方式检查社交帐户的相关用户:
from social.apps.django_app.default.models import UserSocialAuth
for social in UserSocialAuth.objects.all():
print social.provider, social.user.id, social.user.username
在你的情况下,我会这样做:
social\u auth\u usersocialauth
/admin
并确保您已注销