6

我已经开始使用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))

你能告诉我如何在这里访问用户实例吗?

谢谢

4

2 回答 2

8

该应用程序使用模型存储社交帐户详细信息UserSocialAuth,检索任何实例只需执行以下操作:

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

在哪里:

  • user是一个用户实例(request.user对于当前登录的用户)
  • provider是一个带有提供者名称的字符串(facebook、twitter 等)

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

print user_social_auth.tokens
{...}
于 2012-06-27T18:43:24.383 回答
1

正如 K-man 所建议的,您可以试试这个(识别登录用户的后端提供者):

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

您可以在 values_list 中找到的其他值包括:iduid(例如 facebook 用户 ID)、userextra_data(包含access_token

于 2013-05-09T01:24:11.660 回答