2012-06-27 13 views
5

Ho iniziato a utilizzare https://github.com/omab/django-social-auth e ho potuto accedere con successo tramite Twitter, Google e Facebook.django-social-auth: connesso con successo, come interrogare ora per gli utenti?

Needed

ho bisogno di interrogare circa l'utente connesso al fine di fare più cose, quale modello sarò usando per questo?

non vedo alcun esempio per quella

Grazie

Aggiornamento

@Omab, non ho capito come avrebbe funzionato, potete per favore aiutare. Quando faccio il login con Twitter, la richiamata va al seguente codice

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

Potete dirmi come posso accedere a un'istanza utente qui?

Grazie

risposta

6

Le app store i dettagli sociali account utilizzando il modello UserSocialAuth, per recuperare qualsiasi istanza basta fare:

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

Dove:

  • user è un'istanza utente (request.user per l'utente attualmente connesso)
  • provider è una stringa con il nome del provider (facebook, twitter, ecc)

L'istanza UserSocialAuth memorizza i gettoni necessari per chiamare l'API necessarie:

print user_social_auth.tokens 
{...} 
+0

ho aggiornato il codice, ancora non ottenerlo chiaramente, può aiutare per favore? – daydreamer

+0

Ciao @omab, puoi aiutarmi con questo. Non riesco ancora a ottenere nulla, ho aggiornato anche il codice – daydreamer

+1

@daydreamer, in una vista è possibile accedere all'istanza utente facendo 'request.user'. Se è loggato, l'istanza risponderà con 'True' quando chiama' request.user.is_authenticated() '. – omab

1

Come suggerito da K-man, è può provare questo (Identifying the backend provider of a logged in user):

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

Altri valori che si possono trovare nel values_list includono: id, uid (per es. facebook user id), utente, extra_data (che contiene il access_token)