django-social-auth:连接成功,现在如何查询用户?

时间:2012-06-27 18:25:48

标签: python django django-socialauth

我已经开始使用https://github.com/omab/django-social-auth并成功通过twitter,google和facebook登录。

需要

我需要查询登录用户以执行更多操作,我将使用哪种模型?

我没有看到任何关于

的例子

谢谢

更新

@Omab,我不明白这是怎么回事,请你帮忙。当我使用twitter登录时,回调转到以下代码

@login_required
def done(request):
    """Login complete view, displays user data"""
    ctx = {
        'version': version,
        'last_login': request.session.get('social_auth_last_login_backend')
    }
    logging.warn('context - ' + str(ctx))
    logging.warn('request - ' + str(request))
    return render_to_response('home.html', ctx, RequestContext(request))

您能告诉我如何在此处访问用户实例?

谢谢

2 个答案:

答案 0 :(得分:6)

该应用使用UserSocialAuth模型存储社交帐户详细信息,以检索任何实例:

user.social_auth.filter(provider="...")

其中:

  • user是用户实例(当前登录用户为request.user
  • provider是一个包含提供者名称(facebook,twitter等)的字符串

UserSocialAuth实例存储所需的令牌以调用所需的API:

print user_social_auth.tokens
{...}

答案 1 :(得分:1)

根据K-man的建议,你可以试试这个(Identifying the backend provider of a logged in user):

    request.user.social_auth.values_list('provider')

您可以在values_list中找到的其他值包括: ID uid (例如,Facebook用户ID),用户,< strong> extra_data (包含 access_token