2012-06-27 44 views
5

我已經開始使用https://github.com/omab/django-social-auth,並已成功地通過twitter,google和facebook登錄。django-social-auth:連接成功,現在如何查詢用戶?

所需

我需要查詢有關記錄的用戶才能做更多的事情,我將使用該模型?

我沒有看到該

任何例子謝謝

更新

@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)) 

你能告訴我,我怎麼能訪問到用戶實例嗎?

謝謝

回答

6

的應用程序商店使用UserSocialAuth模型,檢索任何實例的社交帳戶細節只是做:

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

其中:

  • user是用戶實例(當前登錄用戶的request.user
  • provider是與供應商名稱的字符串(Facebook,微博等)

UserSocialAuth實例存儲所需要的令牌調用所需的API:

print user_social_auth.tokens 
{...} 
+0

我更新的代碼,仍然沒有得到很清楚,可以請你幫忙嗎? – daydreamer

+0

嗨@omab,請你幫忙。我仍然沒有得到任何東西,我還更新了代碼 – daydreamer

+1

@daydreamer,在視圖中您可以訪問執行'request.user'的用戶實例。如果它已經登錄,那麼當調用'request.user.is_authenticated()'時,實例將以'True'做出響應。 – omab

1

如K-人建議,你可以試試這個(Identifying the backend provider of a logged in user):

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

,你可以在values_list找到其他值包括:IDuid(例如, Facebook的用戶ID),用戶extra_data(其中包含的access_token