"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Dominar Django: crear una API de autenticación de usuario segura desde cero

Dominar Django: crear una API de autenticación de usuario segura desde cero

Publicado el 2024-08-31
Navegar:303

``## Día 4
Ya han pasado cuatro días del desafío de codificación #100daysofMiva. ???

? Sumérgete en Django: ¡Creación de una API de autenticación de usuario segura desde cero!

¿Estás listo para llevar tus habilidades con Django al siguiente nivel? ? En este tutorial, lo guiaré en la creación de una API de autenticación de usuario sólida utilizando Django. Ya sea que sea un desarrollador experimentado o recién esté comenzando, esta guía paso a paso lo guiará a través de la configuración del registro de usuario, el inicio de sesión y la autenticación basada en token.

Al final de esta sesión, tendrás una comprensión sólida de cómo:

  1. Configurar un proyecto Django y configurar paquetes esenciales
  2. Crear y personalizar serializadores para datos de usuario
  3. Crear vistas para gestionar el registro y la autenticación de usuarios
  4. Implementar autenticación basada en tokens para un acceso seguro a la API
  5. ¡Únase a nosotros mientras transformamos un lienzo en blanco en un poderoso sistema de autenticación y desbloqueamos nuevas posibilidades en su viaje con Django! ??

¡Vamos a codificar! ?✨

Mastering Django: Building a Secure User Authentication API from Scratch

Paso 1: configura tu entorno Django:

Para hacer esto necesitas tener python instalado: Asegúrate de que Python esté instalado ejecutando:
macOS/Linux:
Python suele estar preinstalado. Puedes comprobarlo ejecutando:
Mastering Django: Building a Secure User Authentication API from Scratch
o
Mastering Django: Building a Secure User Authentication API from Scratch
Si es necesario, instale Python a través de Homebrew (macOS) o el administrador de paquetes (Linux):
Mastering Django: Building a Secure User Authentication API from Scratch

Windows:

  • Descarga e instala Python desde python.org.
  • Asegúrese de marcar la casilla para agregar Python a su RUTA durante la instalación.

Paso 2. Configure un entorno virtual:

macOS/Linux:

Crear y activar un entorno virtual:

Mastering Django: Building a Secure User Authentication API from Scratch

Windows:

Crear y activar un entorno virtual:

Mastering Django: Building a Secure User Authentication API from Scratch

Paso 3. Instale Django y Paquetes

Ahora, ¿qué es un framework sin sus paquetes?...instalemos los paquetes que necesitaremos.
Con el entorno virtual activado, los comandos para instalar Django y paquetes adicionales son los mismos en todos los sistemas operativos:

Mastering Django: Building a Secure User Authentication API from Scratch
Explicación:
`

  1. djangorestframework: Este es un conjunto de herramientas potente y flexible para crear API web con Django.
  2. djangorestframework-simplejwt: Este paquete proporciona autenticación JSON Web Token (JWT), que se usa comúnmente para la autenticación API segura.

Paso 4. Crea y configura el proyecto Django

macOS/Linux/Windows:

Crear un proyecto y una aplicación Django:

Mastering Django: Building a Secure User Authentication API from Scratch
simplifiquemos lo necesario:

  1. startproject1: Este comando crea un nuevo proyecto Django. Un proyecto es una colección de configuraciones para una instancia de Django, incluida la configuración de la base de datos, opciones específicas de Django y configuraciones específicas de la aplicación.
  2. startapp: Esto crea una nueva aplicación dentro del proyecto. Las aplicaciones son componentes de su proyecto que manejan funciones específicas (por ejemplo, administración de usuarios).

Paso 5. Actualizar la configuración del proyecto

Todos los sistemas operativos:

Modifica settings.py para incluir tu aplicación y los paquetes instalados.
Archivo: auth_project/settings.py

Mastering Django: Building a Secure User Authentication API from Scratch

¿Explicación?:

INSTALLED_APPS: Aquí es donde registras tus aplicaciones y paquetes de terceros. Aquí, agrega rest_framework para la funcionalidad API, rest_framework_simplejwt para la autenticación JWT y usuarios (la aplicación que creó) para administrar tareas relacionadas con el usuario.

Está bien no saber todos los pasos a la vez... solo se necesita práctica, lo harás bien

Espero que me sigas... ¿no es difícil, es complejo?
(¿No sé si funcionó?)...

¿seguir adelante...?
¿Mantengan sus ojos en alto desde aquí, muchachos?

Paso 6. Creando serializadores

Archivo: usuarios/serializers.py

Mastering Django: Building a Secure User Authentication API from Scratch

Explicación:

  1. **Serializadores**: en Django REST Framework, los serializadores se utilizan para convertir tipos de datos complejos (como modelos de Django) en JSON y viceversa.
  2. **RegisterSerializer**: este serializador personalizado maneja el registro de usuarios. Incluye campos como nombre de usuario, contraseña, correo electrónico, etc.
  3. **validate_password**: garantiza que la contraseña cumpla con ciertos criterios de seguridad.
  4. **método de validación**: Validación personalizada para verificar si los dos campos de contraseña coinciden.
  5. Método **crear**: Este método es responsable de crear y guardar el nuevo usuario.

Paso 7: crear vistas

Archivo: usuarios/views.py

Mastering Django: Building a Secure User Authentication API from Scratch
Explicación:

  1. **Vistas**: En Django, las vistas manejan la lógica para procesar las solicitudes de los usuarios.
  2. **RegisterView**: esta vista maneja el registro de usuarios.
  3. **CreateAPIView**: una vista integrada para manejar la creación de nuevos registros. Aquí se utiliza para crear un nuevo usuario.
  4. **permission_classes**: AllowAny significa que cualquier persona puede acceder a este punto final, incluso los usuarios no autenticados, lo cual es necesario para el registro.

Paso 8: configurar las URL

Archivo: usuarios/urls.py
Este código está escrito en la URL de la aplicación

Mastering Django: Building a Secure User Authentication API from Scratch

Explicación:

Patrones de URL: definen las rutas que se asignan a las vistas.
**register/**: esta URL gestionará el registro del usuario.

Luego ve al archivo de tu proyecto: **auth_project/urls.py**
y escribe esto...?

Mastering Django: Building a Secure User Authentication API from Scratch

Explicación:

  1. **include('users.urls')**: esto incluye las URL de la aplicación de los usuarios.
  2. Vistas JWT: TokenObtainPairView: esta vista devuelve un par de tokens de acceso y actualización. TokenRefreshView: esta vista permite a los clientes actualizar el token de acceso utilizando el token de actualización.
  3. **TokenObtainPairView**: esta vista devuelve un par de tokens de acceso y actualización.
  4. **TokenRefreshView**: esta vista permite a los clientes actualizar el token de acceso mediante el token de actualización.

¿Hasta la próxima aquí podrás descansar bien?...no hay presión de aquí en adelante jeje..

Paso 9: ejecutar migraciones

Dominio:

Mastering Django: Building a Secure User Authentication API from Scratch

La función/propósito de hacer esto es que aplica cambios al esquema de su base de datos según los modelos y campos que ha definido en su proyecto. ¿Los que hemos orquestado arriba?

En otras palabras, mantiene el proyecto actualizado

Paso 10: ejecutar el servidor y probar

Dominio:

Mastering Django: Building a Secure User Authentication API from Scratch

Este comando inicia el servidor de desarrollo Django, haciendo que su proyecto sea accesible localmente. (su puerto local)

Ahora veamos qué hemos hecho hasta ahora...

Prueba con Postman o cURL (puedes descargar esta extensión desde tu IDE)

Usando Postman

  1. Abre Postman (o cualquier herramienta de prueba de API que prefieras).

  2. Configurar una nueva solicitud

  • 1. URL: http://127.0.0.1:8000/api/auth/register/
  • 2. Método: PUBLICAR
  1. En la pestaña Cuerpo, seleccione el formato sin formato y JSON.

  2. Ingrese los siguientes datos JSON:
    Cuerpo:

Mastering Django: Building a Secure User Authentication API from Scratch

  1. Haz clic en Enviar.

Para esta parte, Django-Rest Framework tiene una interfaz de usuario amigable, por lo que es más fácil navegar aquí que otros

Si tiene éxito, debería recibir una respuesta con el código de estado HTTP 201 Creado y una respuesta JSON que contiene los datos del usuario.

Pruebe el punto final de autenticación de token

Para garantizar que la autenticación JWT funcione, pruebe el punto final del token.

Usando Postman:

  1. Configurar una nueva solicitud: Método: ENVIAR URL: http://127.0.0.1:8000/api/token/
  2. En la pestaña Cuerpo, seleccione el formato sin formato y JSON.
  3. Ingrese los siguientes datos JSON

Mastering Django: Building a Secure User Authentication API from Scratch

4, haga clic en Enviar.
Deberías recibir una respuesta JSON con tokens de acceso y actualización:

Mastering Django: Building a Secure User Authentication API from Scratch

**

Consejos para solucionar problemas

**
El servidor no se inicia: asegúrese de estar en el directorio correcto y de haber activado su entorno virtual.
Errores de punto final: vuelva a verificar sus rutas URL y asegúrese de que su aplicación Django esté configurada correctamente con las URL.
Respuestas no válidas: verifique que los puntos finales y serializadores de su API estén configurados correctamente.
Si sigue estos pasos, debería poder ejecutar con éxito su servidor de desarrollo Django, probar el punto final de registro y verificar la autenticación basada en token.

Declaración de liberación Este artículo se reproduce en: https://dev.to/mayowakalejaiye/mastering-django-building-a-secure-user-authentication-api-from-scratch-4ma3?1 Si hay alguna infracción, comuníquese con Study_golang@163 .com para eliminarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3