2

我正在使用 Python Social Auth 制作一个示例登录应用程序。

我的应用程序为用户提供了使用facebooktwitter登录的机会。

假设我的 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".

请帮忙。

4

0 回答 0