2012-02-27 19 views
6

que tienen un sitio que permite la autenticación de Facebook usando Django-sociales-authDjango RESTO autenticación facebook

Ahora también tienen que autenticarse mediante una API no basado en cookies. Mi idea es incluir un "sessionid =" como un campo POST (usará HTTPS). Hasta ahora he logrado "engañar" a django para acceder a este sessionid como si fuera una cookie (básicamente hago algo como request.COOKIES ['sessionid'] = request.POST ['sessionid'] en un middleware).

Mi problema es cómo dar el sessionid al usuario inmediatamente después de autenticado. Por lo que pude averiguar, Facebook le da al usuario un "token de acceso" que luego se envía a/complete/facebook /, que es procesado por django-social-auth y devuelve un encabezado "Set-cookie" que contiene el "sessionid " llave. Pero en lugar de eso, necesitaría devolver la clave sessionid como json en el contenido de la página (el cliente API no puede leer el encabezado de respuesta http).

Respuesta

1

Parece un desafío. Pero quizás puedas utilizar una señal de guardado que active un evento Comet con el JSON requerido. Como punto de partida, una versión anterior del django-social-auth doc parece mencionar señales.

https://django-social-auth.readthedocs.org/en/v0.7.1/signals.html

Sin embargo, un mejor enfoque puede ser para saltar django-sociales-auth todos juntos y salir a auth sociales pitón. La documentación en sí dice: "NOTA: ESTA BIBLIOTECA SE DEMORA EN FAVOR DE python-social-auth".

Cuestiones relacionadas