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="...")

どこ:

  • userUserインスタンス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 に答える