我正在使用 Python Social Auth 制作一个示例登录应用程序。
我的应用程序为用户提供了使用facebook或twitter登录的机会。
假设我的 facebook 帐户的名称是boel.facebook,而 twitter 的名称是boel.twitter。
这是我的纸条的一个片段。
def get_profile_picture(
strategy,
user,
response,
details,
is_new=False,
*args,
**kwargs
):
img_url = None
if strategy.backend.name == 'facebook':
img_url = 'http://graph.facebook.com/%s/picture?type=large' \
% response['id']
elif strategy.backend.name == 'twitter':
img_url = response.get('profile_image_url', '').replace('_normal', '')
print('THE USER IS: %s'%(user.username))
###
如果用户使用 facebook 登录,控制台打印
"THE USER IS: boel.facebook"
并且应用程序重定向到登录页面,我有一个用于注销的链接,该链接在 views.py 中调用以下函数:
def logout(request):
auth_logout(request)
#redirect to login page.
此时用户返回登录页面。到这里为止,一切正常。
现在,如果用户这次尝试使用 twitter 登录,Python Social Auth 将重定向到 twitter 登录,并且在用户成功通过身份验证后,会调用管道,但控制台会
"THE USER IS boel.facebook"
再次打印:
那么,我在这里做错了什么?
由于这次用户通过 twitter 进行了身份验证,因此控制台必须打印:
"THE USER IS boel.twitter".
请帮忙。