【发布时间】:2015-03-19 12:18:32
【问题描述】:
我的 Django 设置文件中有以下管道,用于使用 python-social-auth 模块登录 Facebook:
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.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.get_username',
'social.pipeline.user.user_details',
'social.pipeline.social_auth.associate_by_email',
)
我的登录方式是这样的:
当我第一次尝试使用 Facebook 进行身份验证时,我得到以下信息: /complete/facebook/ 处的 AttributeError 'NoneType' 对象没有属性 'provider'
def user_login(request):
""" Login page view."""
#context = RequestContext(request)
context = RequestContext(request,
{'request': request,
'user': request.user})
user = request.user
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password) # authentication
if not user.is_anonymous():
print user
if not request.method == 'POST':
user.backend = 'django.contrib.auth.backends.ModelBackend'
if user.is_active:
login(request, user)
return HttpResponseRedirect('/')
else:
return render_to_response('main/login.html', {}, context)
else:
return render_to_response('main/login.html', {}, context)
但是,如果我注释掉 SOCIAL_AUTH_PIPELINE 并尝试登录,那就没问题了。当然,一旦社交身份验证用户进入数据库,Pipleline 就会正常工作。
如果有任何想法可以在哪里寻找错误,我将不胜感激。
【问题讨论】:
标签: python django pipeline python-social-auth