Instalación de Django Allauth y configuración con Facebook

Posted on:27 marzo, 2017

Author:Andros Fenollosa Hurtado

Category:Uncategorized

Share: / /

Instalación de Django Allauth

Django Allauth es una herramienta para nuestro proyecto Django que nos permite realizar el proceso de autentificación en diferentes plataformas sociales.  Allauth cuenta con actualmente con 58 plataformas en las que se le puede hacer uso, entre ellas las más famosas como Facebook o Twitter. La instalación y configuración es rápida y simple como veremos a continuación. El primer paso es instalar django-allauth en nuestro proyecto Django, para ello ejecutaremos el siguiente comando en la terminal:

$ pip install django-allauth

Una vez terminada la instalación, configuramos el archivo settings.py añadiendo las siguientes lineas de código.

En TEMPLATES:

TEMPLATES=[
   ...
      'context_processors':[
         django.template.context_processors.request',

Añadimos:

AUTHENTICATION_BACKENDS=(
   'django.contrib.auth.backends.ModelBackend',
   'allauth.account.auth_backends.AuthenticationBackend',
)

En INSTALLED_APPS:

INSTALLED_APPS=(
   'django.contrib.sites',
   'allauth','allauth.account',
   'allauth.socialaccount',
   'allauth.socialaccount.providers.facebook',
)

Finalmente añadimos una variable que se usará mas adelante:

SITE_ID=1

Con estos pasos hemos acabado de instalar django-allauth en nuestro proyecto.

 

Configuración de Django Allauth para Facebook

Para poder acceder al panel de administrador de Django y configurar Allauth, necesitamos incluir la ruta de acceso en el archivo urls.py del proyecto:

urlpatterns=[
   url(r'^accounts/', include('allauth.urls')),

A continuación, realizamos la migración en la terminal:

$ python manage.py migrate

Ahora podemos acceder a el panel de administrador de django en la dirección:

http://localhost:8000/admin

Observaremos que se han creado varias tablas nuevas relacionadas con Allauth. Ahora sólo usaremos una parte. Empezaremos añadiendo un nuevo ‘site’ en la tabla correspondiente con el mismo nombre. Nos fijamos que ya existe un ‘site’ por defecto llamado ‘example.com’, para que todo funcione correctamente debemos hacer que nuestro sitio concuerde con la variable que hemos configurado anteriormente: SITE_ID=1. Si añadiesemos un nuevo sitio tendriamos que cambiar la variable a SITE_ID=1, asi que en vez de crear uno nuevo, podemos modificar el existente con los datos siguientes:

Domain name: localhost:8000
Display name: FB Login

Volvemos al panel de administrador y añadimos una nueva entrada en ‘Social applications’ dentro del apartado Social Accounts con los siguientes datos:

Provider: Facebook
Name: FB_App
Client id: FACEBOOK_APP_ID
Secret Key: FACEBOOK_APP_SECRET
Key: <vacio>
Sites: seleccionamos el sitio en Available y lo pasamos a Chosen, en este caso sera 'localhost:8000'

En la página de desarrollador de Facebook (apartado Settings > SiteURL) hay que asegurarse de que la dirección introducida anteriormente en Sites Available se encuetnra configurada de la misma manera.

Si queremos investigar el tipo de URLs asociadas a los servicios disponibles en Django Allauth, podemos acceder a la dirección:

localhost:8000/accounts/

El navegador mostrara un error, pero nos listará todas las URLs cuya funcionalidad ofrece Allauth.

Finalmente, cuando desarrollemos cualquier apartado de neustra web usando Allauth, deberemos configurar en settings.py la dirección a la que se llamara una vez realizada la acción.

LOGIN_REDIRECT_UTL='/profile/'

Así pues, si llamamos la dirección:

localhost:8000/accounts/login/

para realizar la autentificación. Una vez realizada, nos redigirá a la URL configurada anteriormente.

 

Leave a comment