Python | Instalación y configuración de Django-allauth

El registro de usuario es una de las partes más esenciales de una aplicación web. django-registration-reduxy django-alluthson las aplicaciones de registro más famosas disponibles en Django. Esta serie de tutoriales trata sobre la instalación, configuración y personalización django-allauthy sirve como una guía para los nuevos usuarios que desean comenzar rápidamente allauthy realizar personalizaciones útiles en el camino sin mucho dolor.

Este artículo cubre la instalación y algunas configuraciones básicas. Más adelante, nos ocuparemos del inicio de sesión social, las clases extendidas y el uso eficiente de DefaultAccountAdapterpara agregar un proceso personalizado.

Puede ser abrumador para un djangonovato o un nuevo usuario de django-allauthsí mismo. Aunque está bien documentado, debido a las limitaciones de tiempo y recursos de los desarrolladores involucrados, no ha habido muchos artículos ni tutoriales detallados sobre la biblioteca. Así que esta serie trata de resolver ese problema y hacer una serie completa de guías para que sea django-allauthfácil de usar y trabajar para la comunidad django.

¿Como instalar?
Puede descargar los archivos utilizados en el tutorial para obtener una ventaja. Los pasos a continuación lo guían a través de la configuración.

  • Cree un proyecto Django si aún no tiene uno.
  • Instalar django-allauthusando el comandopip install django-allauth
  • Agregue 'allauth, allauth.account'y allauth.socialaccounttodos los inicios de sesión sociales necesarios para INSTALLED_APPS.Puede ver la lista completa de API admitidas aquí . La función de inicio de sesión social se describe en detalle en el siguiente artículo. Después de configurar, las aplicaciones instaladas deberían ser similares a las que se indican a continuación.
INSTALLED_APPS = [
    'django.contrib.admin',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.google',
    'allauth.socialaccount.providers.facebook',
    'django.contrib.auth',
    'django.contrib.sites',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
  • Configure los templateajustes del procesador de contexto settings.pyy también agregue un patrón de URL en el proyecto urls.py
  • TEMPLATES = [
      {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [
                os.path.normpath(os.path.join(BASE_DIR, 'templates')),
            ],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                    'django.template.context_processors.request',
                ],
            },
        },
    ]
  • Agregue el siguiente backend de autenticación.
  • AUTHENTICATION_BACKENDS = (
        'django.contrib.auth.backends.ModelBackend',
        'allauth.account.auth_backends.AuthenticationBackend',
    )
  • Copie los archivos de plantilla del repositorio django-allauth o mi repositorio personalizado (he hecho algunas modificaciones y una buena estructuración) y péguelo en la templatescarpeta en el directorio de su proyecto.
  • Agregue las URL allauth en urls.pyel directorio principal de su proyecto. Después de agregar las URL allauth, lo siguiente debería verse así,
  • from django.contrib import admin
    from django.urls import path
    from django.conf.urls import url, include
    urlpatterns = [
        path('admin/', admin.site.urls),
        url(r'^accounts/', include('allauth.urls')),
    ]
    • También puede agregar el CSS personalizado usted mismo o mi CSS (bien comentado y documentado) que he creado durante mi uso de las plantillas allauth. Incluye estilos para casi todas las páginas e incluso plantillas de correo electrónico compatibles con dispositivos móviles para correos electrónicos de confirmación y restablecimiento de contraseña. Puede hacerlo creando una staticcarpeta en el directorio del proyecto y colocando el CSS en la accountcarpeta.
    • Ejecute python manage.py makemigrationsy python manage.py migratepara ejecutar todas las migraciones necesarias y ejecute python manage.py runserverpara iniciar el servidor django.
    • Siga los patrones de URL para mostrar el formulario de registro.
      Por ejemplo: localhost:8000/accounts/loginpara mostrar la página de inicio de sesión.

    Configuración:
    la mayoría de las funciones de django-allauth se pueden configurar utilizando los adaptadores y variables integrados colocándolos en un settings.py.archivo. Aunque la documentación tiene toneladas de tales opciones con buenas explicaciones, se destacan algunas importantes a continuación.

    • Caducidad de la confirmación del correo electrónico: establece la cantidad de días dentro de los cuales se debe activar una cuenta. P.ej:ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS=7
    • Se requiere correo electrónico para la activación: esta opción le permite establecer si se debe solicitar la dirección de correo electrónico para registrarse. Configure Falsepara deshabilitar el requisito de correo electrónico. P.ej:ACCOUNT_EMAIL_REQUIRED = True
    • Verificación de correo electrónico de la cuenta: esta opción se puede usar para establecer si es necesaria una verificación de correo electrónico para que un usuario inicie sesión después de registrar una cuenta. Puede usar ‘obligatorio’ para impedir que un usuario inicie sesión hasta que se verifique el correo electrónico. Puede configurar optionalel envío del correo electrónico pero permitir que el usuario inicie sesión sin un correo electrónico. También puede configurar nonepara no enviar ningún correo electrónico de verificación. (No recomendado) Por ejemplo:ACCOUNT_EMAIL_VERIFICATION = "mandatory"
    • Límite de intentos de inicio de sesión: esta es una característica importante que se puede utilizar para evitar ataques de fuerza bruta en el módulo de inicio de sesión del usuario en allauth. Se puede establecer el número máximo de intentos de inicio de sesión y se bloquea el inicio de sesión del usuario hasta que se agote el tiempo de espera. Esta característica hace uso de ACCOUNT_LOGIN_ATTEMPTS_TIMEOUTla configuración. P.ej:ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 5
    • Tiempo de espera del límite de intentos de inicio de sesión: esta configuración debe usarse con ACCOUNT_LOGIN_ATTEMPTS_LIMITla configuración. El valor establecido está en segundos desde el último intento fallido de inicio de sesión. Tenga en cuenta que esto no evita que el inicio de sesión del administrador sea forzado. P.ej:ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = 86400 # 1 day in seconds
    • Redirección de URL de inicio y cierre de sesión: cuando el usuario inicia o cierra sesión, es posible que desee redirigir al usuario a una URL o página en particular y la configuración a continuación se puede usar para establecer esos valores. De forma predeterminada, allauth redirige el inicio de sesión a /accounts/profile/la URL y cierra la sesión a la localhost:8000o cualquier localhostpágina de inicio.
      Ej : ACCOUNT_LOGOUT_REDIRECT_URL ='/accounts/login/'
      Ej :LOGIN_REDIRECT_URL = '/accounts/email/'

    Finalmente, su allauth configuración debe ser similar a la siguiente configuración.

    #django-allauth registraion settings
    ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS =1
    ACCOUNT_EMAIL_REQUIRED = True
    ACCOUNT_EMAIL_VERIFICATION = "mandatory"
    ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 5
      
    # 1 day
    ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = 86400 
      
    #or any other page
    ACCOUNT_LOGOUT_REDIRECT_URL ='/accounts/login/' 
      
    # redirects to profile page if not configured.
    LOGIN_REDIRECT_URL = '/accounts/email/'

     
    Referencias :
    documentación oficial de django-allauth
    Mis plantillas personalizadas y css

Publicación traducida automáticamente

Artículo escrito por gjbht y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *