Correo electrónico + inicios de sesión sociales en Django: guía paso a paso
El correo electrónico y los inicios de sesión sociales son técnicas comunes para sitios web y aplicaciones que permiten a los usuarios establecer cuentas o registrarse. Los usuarios deben proporcionar su dirección de correo electrónico y contraseña para iniciar sesión por correo electrónico; sin embargo, el inicio de sesión social permite a los usuarios iniciar sesión utilizando sus cuentas de redes sociales. , como Facebook o Google. En este tutorial, veremos cómo configurar el correo electrónico y los inicios de sesión sociales en Django.
Método
Con Django, existen numerosas formas de incorporar el correo electrónico y los inicios de sesión sociales. El paquete Django-allauth, que admite la autenticación para numerosos métodos de inicio de sesión, incluido el correo electrónico y el inicio de sesión social, es uno de los más frecuentes. Otro enfoque es utilizar el paquete Django-social-auth, que ofrece autenticación social para una variedad de servicios de redes sociales.
Sintaxis
Instalación de Django-allauth -
pip install django-allauth
Instalación de Django-social-auth -
pip install django-social-auth
El siguiente código ilustra el uso de Django-allauth para implementar inicios de sesión sociales y de correo electrónico en Django:
Algoritmo
-
Se debe instalar Django-allauth o Django-social-auth.
En settings.py, configure los servidores de autenticación.
En urls.py, incluya todas las URL de autenticación.
Para construir tablas de bases de datos y ejecutar migraciones.
Configure un servidor de correo electrónico para la verificación del correo electrónico.
Modifique las plantillas para que coincidan con el aspecto de su sitio web.
Incluya las siguientes URL en urls.py:
path('accounts/', include('allauth.urls')),
En urls.py, la línea de código "path('accounts/', include('allauth.urls'))" contiene las URL proporcionadas por el paquete Django-allauth, que gestiona la autenticación para múltiples métodos de inicio de sesión, incluidos el correo electrónico y las redes sociales. inicios de sesión. Esta línea de código traduce la URL "cuentas/" a las URL de allauth, lo que permite a los usuarios acceder a las vistas de autenticación de Django-allauth.
Ejecute migraciones para crear las tablas de base de datos necesarias.
Configure el servidor de correo electrónico en settings.py para habilitar la verificación de correo electrónico:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
Personalice las plantillas en plantillas/cuenta/ para que coincidan con el diseño de su sitio.
Siga estos pasos para crear el entorno y el directorio del proyecto:
Se deben instalar Python y pip.
Con virtualenv o venv, cree un entorno virtual.
Encienda el entorno virtual.
Con pip, instala Django.
Con el comando "django-admin startproject", cree un nuevo proyecto Django.
Con el comando "python enable.py startapp", cree una nueva aplicación Django dentro del proyecto.
En settings.py, agregue la nueva aplicación a la lista de APLICACIONES INSTALADAS.
En models.py, defina los modelos de la aplicación.
-
Usando los comandos "python Manage.py makemigrations" y "python enable.py migration", cree las tablas de la base de datos.
En settings.py, configure los servidores de autenticación.
Utilice la línea de código "path('accounts/', include('allauth.urls'))" para incluir las URL de allauth en urls.py.
En settings.py, configure un servidor de correo electrónico para la verificación del correo electrónico.
Modifique las plantillas en plantillas/cuenta/ para que coincidan con el estilo de su sitio.
Utilice "python Manage.py RunServer" para iniciar el servidor de desarrollo Django y probar el correo electrónico y los inicios de sesión sociales.
Ejemplo
El primer fragmento de código (en settings.py) debe agregarse al archivo settings.py de su proyecto, que es donde establece los ajustes de configuración para su proyecto Django.
# settings.py
INSTALLED_APPS = [
'...';
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.facebook',
...
]
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]
SOCIALACCOUNT_PROVIDERS = {
'google': {
'APP': {
'client_id': 'YOUR_CLIENT_ID',
'secret': 'YOUR_SECRET_KEY',
'key': ''
}
},
'facebook': {
'APP': {
'client_id': 'YOUR_CLIENT_ID',
'secret': 'YOUR_SECRET_KEY',
'key': ''
}
}
}
La segunda pieza de código (en urls.py) debe agregarse al archivo urls.py de su proyecto, donde especifica los patrones de URL de su proyecto Django.
# urls.py
from django.urls import path, include
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
...
]
Recuerde cambiar los valores de "SU ID DE CLIENTE" y "SU CLAVE SECRETA" con sus credenciales reales de la consola de desarrollador de Google y Facebook. Finalmente, antes de ejecutar su proyecto Django, asegúrese de instalar los paquetes necesarios (como Django-allauth).
Producción
Los usuarios pueden establecer cuentas o iniciar sesión utilizando sus cuentas de correo electrónico o de redes sociales después de integrar el correo electrónico y los inicios de sesión sociales utilizando Django-allauth o Django-social-auth.
Conclusión
El uso del correo electrónico y los inicios de sesión sociales en Django puede mejorar la experiencia del usuario y facilitar el proceso de creación de cuentas. El uso de paquetes como Django-allauth o Django-social-auth puede hacer que el proceso de implementación sea más fluido y rápido.