2012-06-27 12 views
5

He comenzado a usar https://github.com/omab/django-social-auth y he podido iniciar sesión con éxito a través de twitter, google y facebook.django-social-auth: conectado con éxito, ¿cómo consultar a los usuarios ahora?

necesario

necesito para consultar sobre el usuario conectado con el fin de hacer más cosas, que Modelo usaré para eso?

no veo ningún ejemplo para que

Gracias

actualización

@Omab, que no entendía cómo podría funcionar esto, se puede ayudar por favor. Cuando me conecto con twitter, la devolución de llamada va al siguiente código

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

¿Me puede decir cómo puedo acceder a la instancia de usuario aquí?

Gracias

Respuesta

6

Las aplicaciones almacena los datos sociales de cuenta utilizando el modelo de UserSocialAuth, para recuperar cualquier instancia acaba de hacer:

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

Dónde:

  • user es una instancia de usuario (request.user para el usuario con sesión iniciada)
  • provider es una cadena con el nombre del proveedor (Facebook, Twitter, etc)

La instancia UserSocialAuth almacena las fichas necesarias para llamar a la API necesaria:

print user_social_auth.tokens 
{...} 
+0

He actualizado el código, todavía no obtienen con claridad, puede ayudar por favor? – daydreamer

+0

Hola @omab, ¿puedes ayudarme con esto? Todavía no obtengo nada, también he actualizado el código – daydreamer

+1

@daydreamer, en una vista puede acceder a la instancia del usuario haciendo 'request.user'. Si está conectado, la instancia responderá con 'True' al llamar' request.user.is_authenticated() '. – omab

1

Como sugiere K-hombre, que puede probar esto (Identifying the backend provider of a logged in user):

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

Otros valores que se pueden encontrar en el values_list incluyen: Identificación, uid (por ej. facebook Identificación del usuario), usuario, extra_data (que contiene el señal_acceso)

Cuestiones relacionadas