2012-06-27 23 views
5

Tôi đã bắt đầu sử dụng https://github.com/omab/django-social-auth và có thể đăng nhập thành công qua twitter, google và facebook.django-social-auth: đã kết nối thành công, cách truy vấn người dùng ngay bây giờ?

cần thiết

tôi cần phải truy vấn về đăng nhập người dùng để làm những việc hơn, mà mẫu tôi sẽ được sử dụng cho điều đó?

Tôi không thấy bất kỳ ví dụ cho điều đó

Cảm ơn bạn

Cập nhật

@Omab, tôi không hiểu làm thế nào điều này sẽ làm việc, bạn có thể vui lòng giúp đỡ. Khi tôi đăng nhập với twitter, gọi lại đi vào đoạn mã sau

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

Bạn có thể cho tôi biết làm thế nào tôi có thể truy cập để sử dụng ví dụ ở đây?

Cảm ơn bạn

Trả lời

6

Các cửa hàng ứng dụng các chi tiết xã hội tài khoản sử dụng mô hình UserSocialAuth, để lấy bất kỳ trường hợp chỉ làm:

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

đâu:

  • user là một trường hợp tài khoản (request.user cho người dùng đã đăng nhập hiện tại)
  • provider là một chuỗi với tên nhà cung cấp (facebook, twitter, vv)

Các dụ UserSocialAuth lưu trữ các thẻ cần thiết để gọi API cần thiết:

print user_social_auth.tokens 
{...} 
+0

tôi cập nhật mã, vẫn không nhận được nó rõ ràng, bạn có thể xin vui lòng giúp đỡ? – daydreamer

+0

Xin chào @omab, bạn có thể vui lòng trợ giúp với điều này không. Tôi vẫn không nhận được bất cứ điều gì, tôi đã cập nhật mã cũng như – daydreamer

+1

@daydreamer, trong chế độ xem, bạn có thể truy cập cá thể người dùng đang thực hiện 'request.user'. Nếu nó được đăng nhập, thì cá thể sẽ trả lời bằng 'True' khi gọi' request.user.is_authenticated() '. – omab

1

Theo đề nghị của K-người đàn ông, bạn có thể thử này (Identifying the backend provider of a logged in user):

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

giá trị khác mà bạn có thể tìm thấy trong values_list bao gồm: id, uid (ví dụ: user id facebook), dùng, extra_data (chứa access_token)

Các vấn đề liên quan