Skip to main content

A Django application for helping in facebook login an managing.

Project description

Objetivo: Crear una aplicación canvas.

Dos puntos de entrada de información de facebook.

1º a través de la página de inicio se pasa una variable por POST con nombre 'signed_request'. Esta variable se puede parsear a través de la función parse_signed_request(signed_request, app_secret). Tiene dos posibles contenidos en función de si el usuario ha dado permiso o no a la aplicación.

1.1 El usuario sí ha dado persmiso. Contiene por ejemplo:
'user_id': '100005466480745',
'algorithm': 'HMAC-SHA256',
'expires': 1365447600,
'oauth_token': 'AAADOARsZCbhkBAJUIlFV5F7267CgJrZAdkQgmV1dugLqrSkcNhAQ5mexlg9VZBmog3EePcO6hc6fUDupJqfKUJCZCh5xqbVPecrZAKfs22dHL1bHBNhs5',
'user': {
'locale': 'es_ES',
'country': 'es',
'age': {'min': 21}},
'issued_at': 1365441503
}

1.2 El usuario no ha dado persmiso. Contiene por ejemplo:

'issued_at': 1365441657,
'user': {
'locale': 'es_ES',
'country': 'es',
'age': {'min': 21}},
'algorithm': 'HMAC-SHA256'
}

La difrencia básica es el oauth_token que permite obtener o no los datos del cliente. Con esos datos se puede llamar al motor de autenticación con el backend que se ha creado y poder autenticar y posteriormente loguear a éste con las llamadas:

2º a través de un formulario de solicitud de permisos.

si se invoca la url (que también se puede generar a través del API) https://www.facebook.com/dialog/oauth?scope=PARAMS&redirect_uri=REDIRECT_URI&display=MODE&client_id=FACEBOOK_APP_ID&response_type=code se mostrará una pantalla a través de la cual el usuario dará permisos (o no) a la aplicación. Una vez hecho esto el formulario se redirigirá a la url REDIRECT_URI pasandole el parametro GET 'code'. Dicho code se puede transformar en una oauth_token con la función del API get_access_token_from_code(...)





Ejemplo de autenticación y login de usuario:


user = auth.authenticate(token='XXXXXXXXXXXXXXX')
if user is not None:
if user.is_active:
auth.login(request, user)
# Redirect to a success page.
else:
# Return a 'disabled account' error message
pass
else:
# Return an 'invalid login' error message.
pass

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_facebook_helper-0.3.7.tar.gz (11.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page