Maison > développement back-end > Tutoriel Python > Maîtriser Django : créer une API d'authentification utilisateur sécurisée à partir de zéro

Maîtriser Django : créer une API d'authentification utilisateur sécurisée à partir de zéro

WBOY
Libérer: 2024-08-25 06:01:06
original
395 Les gens l'ont consulté

``## Jour 4
Cela fait déjà quatre jours que le défi de codage #100daysofMiva est lancé. ???

? Plongez dans Django : Créer une API d'authentification utilisateur sécurisée à partir de zéro !

Êtes-vous prêt à faire passer vos compétences Django au niveau suivant ? ? Dans ce tutoriel, je vais vous guider dans la création d'une API d'authentification utilisateur robuste à l'aide de Django. Que vous soyez un développeur chevronné ou un débutant, ce guide étape par étape vous guidera dans la configuration de l'enregistrement des utilisateurs, de la connexion et de l'authentification par jeton.

À la fin de cette session, vous aurez une solide compréhension de comment :

  1. Configurer un projet Django et configurer les packages essentiels
  2. Créer et personnaliser des sérialiseurs pour les données utilisateur
  3. Créer des vues pour gérer l'enregistrement et l'authentification des utilisateurs
  4. Mettre en œuvre une authentification basée sur des jetons pour un accès sécurisé à l'API
  5. Rejoignez-nous pour transformer une toile vierge en un puissant système d'authentification et débloquer de nouvelles possibilités dans votre voyage Django ! ??

Commençons à coder ! ?✨

Mastering Django: Building a Secure User Authentication API from Scratch

Étape 1 : Configurez votre environnement Django :

Pour ce faire, vous devez avoir python installé : assurez-vous que Python est installé en exécutant :
macOS/Linux :
Python est souvent préinstallé. Vous pouvez vérifier en exécutant :
Mastering Django: Building a Secure User Authentication API from Scratch
ou
Mastering Django: Building a Secure User Authentication API from Scratch
Si nécessaire, installez Python via Homebrew (macOS) ou le gestionnaire de packages (Linux) :
Mastering Django: Building a Secure User Authentication API from Scratch

Windows :

  • Téléchargez et installez Python depuis python.org.
  • Assurez-vous de cocher la case pour ajouter Python à votre PATH lors de l'installation.

Étape 2. Configurer un environnement virtuel :

macOS/Linux :

Créer et activer un environnement virtuel :

Mastering Django: Building a Secure User Authentication API from Scratch

Windows :

Créer et activer un environnement virtuel :

Mastering Django: Building a Secure User Authentication API from Scratch

Étape 3. Installez Django et les packages

Maintenant, qu'est-ce qu'un framework sans ses packages ?...installons les packages dont nous aurons besoin.?
Avec l'environnement virtuel activé, les commandes pour installer Django et les packages supplémentaires sont les mêmes sur tous les systèmes d'exploitation :

Mastering Django: Building a Secure User Authentication API from Scratch
Explication :
`

  1. djangorestframework : Il s'agit d'une boîte à outils puissante et flexible pour créer des API Web avec Django.
  2. djangorestframework-simplejwt : ce package fournit l'authentification JSON Web Token (JWT), qui est couramment utilisée pour l'authentification sécurisée de l'API.

Étape 4. Créer et configurer le projet Django

macOS/Linux/Windows :

Créez un projet et une application Django :

Mastering Django: Building a Secure User Authentication API from Scratch
simplifions les choses nécessaires :

  1. startproject1 : Cette commande crée un nouveau projet Django. Un projet est un ensemble de paramètres pour une instance de Django, y compris la configuration de la base de données, les options spécifiques à Django et les paramètres spécifiques à l'application.
  2. startapp : Cela crée une nouvelle application au sein du projet. Les applications sont des composants de votre projet qui gèrent des fonctionnalités spécifiques (par exemple, la gestion des utilisateurs).

Étape 5. Mettre à jour les paramètres du projet

Tous les systèmes d'exploitation :

Modifiez settings.py pour inclure votre application et les packages installés.
Fichier : auth_project/settings.py

Mastering Django: Building a Secure User Authentication API from Scratch

Explication, allons-nous ?:

INSTALLED_APPS : C'est ici que vous enregistrez vos applications et packages tiers. Ici, vous ajoutez rest_framework pour la fonctionnalité API, rest_framework_simplejwt pour l'authentification JWT et les utilisateurs (l'application que vous avez créée) pour gérer les tâches liées aux utilisateurs.

Ce n'est pas grave de ne pas connaître toutes les étapes en même temps... il faut juste de la pratique, vous y arriverez

J'espère que vous suivez... c'est pas difficile c'est complexe ?
(Je ne sais pas si ça a fonctionné ?)...

on continue...?
Gardez les yeux rivés sur les gars ?

Étape 6. Création de sérialiseurs

Fichier : users/serializers.py

Mastering Django: Building a Secure User Authentication API from Scratch

Explication :

  1. **Sérialiseurs** : dans Django REST Framework, les sérialiseurs sont utilisés pour convertir des types de données complexes (comme les modèles Django) en JSON, et vice versa.
  2. **RegisterSerializer** : ce sérialiseur personnalisé gère l'enregistrement des utilisateurs. Il comprend des champs comme le nom d'utilisateur, le mot de passe, l'e-mail, etc.
  3. **validate_password** : garantit que le mot de passe répond à certains critères de sécurité.
  4. **méthode de validation** : validation personnalisée pour vérifier si les deux champs de mot de passe correspondent.
  5. Méthode **create** : cette méthode est responsable de la création et de l'enregistrement du nouvel utilisateur.

Étape 7 : Création de vues

Fichier : users/views.py

Mastering Django: Building a Secure User Authentication API from Scratch
Explication :

  1. **Vues** : dans Django, les vues gèrent la logique de traitement des demandes des utilisateurs.
  2. **RegisterView** : cette vue gère l'enregistrement des utilisateurs.
  3. **CreateAPIView** : une vue intégrée pour gérer la création de nouveaux enregistrements. Ici, il sert à créer un nouvel utilisateur.
  4. **permission_classes** : AllowAny signifie que ce point de terminaison est accessible à tous, même aux utilisateurs non authentifiés, ce qui est nécessaire à l'enregistrement.

Étape 8 : Configuration des URL

Fichier : users/urls.py
Ce code est écrit dans l'URL de l'application

Mastering Django: Building a Secure User Authentication API from Scratch

Explication :

Modèles d'URL : ceux-ci définissent les chemins qui correspondent aux vues.
**register/** : Cette URL gérera l'enregistrement des utilisateurs.

Ensuite, allez dans le fichier de votre projet : **auth_project/urls.py**
et tape ceci...?

Mastering Django: Building a Secure User Authentication API from Scratch

Explication :

  1. **include('users.urls')** : cela inclut les URL de l'application des utilisateurs.
  2. Vues JWT : TokenObtainPairView : cette vue renvoie une paire de jetons d'accès et d'actualisation. TokenRefreshView : cette vue permet aux clients d'actualiser le jeton d'accès à l'aide du jeton d'actualisation.
  3. **TokenObtainPairView** : cette vue renvoie une paire de jetons d'accès et d'actualisation.
  4. **TokenRefreshView** : cette vue permet aux clients d'actualiser le jeton d'accès à l'aide du jeton d'actualisation.

Jusqu'au prochain ici, vous pouvez bien vous reposer ?... plus de pression à partir de maintenant hehe..

Étape 9 : Exécuter des migrations

Commande :

Mastering Django: Building a Secure User Authentication API from Scratch

La fonction/le but de cette opération est d'appliquer les modifications au schéma de votre base de données en fonction des modèles et des champs que vous avez définis dans votre projet. ceux que nous avons orchestrés ci-dessus ?

En d'autres termes, cela maintient le projet à jour

Étape 10 : Exécution du serveur et tests

Commande :

Mastering Django: Building a Secure User Authentication API from Scratch

Cette commande démarre le serveur de développement Django, rendant votre projet accessible localement. (votre port local)

Voyons maintenant ce que nous avons fait jusqu'à présent...

Test avec Postman ou cURL (vous pouvez télécharger cette extension depuis votre IDE)

Utiliser Postman

  1. Ouvrez Postman (ou tout autre outil de test d'API que vous préférez).

  2. Configurer une nouvelle demande

  • 1. URL : http://127.0.0.1:8000/api/auth/register/
  • 2. Méthode : POST
  1. Dans l'onglet Corps, sélectionnez le format brut et JSON.

  2. Saisissez les données JSON suivantes :
    Corps :

Mastering Django: Building a Secure User Authentication API from Scratch

  1. Cliquez sur Envoyer.

Pour cette partie, le Framework Django-Rest dispose d'une interface utilisateur conviviale, il est donc plus facile de naviguer ici que d'autres

En cas de succès, vous devriez recevoir une réponse avec le code d'état HTTP 201 Créé et une réponse JSON contenant les données utilisateur.

Testez le point de terminaison d'authentification par jeton

Pour vous assurer que l'authentification JWT fonctionne, testez le point de terminaison du jeton.

Utiliser Postman :

  1. Configurer une nouvelle demande : Méthode : POST URL : http://127.0.0.1:8000/api/token/
  2. Dans l'onglet Corps, sélectionnez le format brut et JSON.
  3. Entrez les données JSON suivantes

Mastering Django: Building a Secure User Authentication API from Scratch

4, cliquez sur Envoyer.
Vous devriez recevoir une réponse JSON avec des jetons d'accès et d'actualisation :

Mastering Django: Building a Secure User Authentication API from Scratch

**

Conseils de dépannage

**
Le serveur ne démarre pas : assurez-vous que vous êtes dans le bon répertoire et que vous avez activé votre environnement virtuel.
Erreurs de point de terminaison : vérifiez à nouveau vos chemins d'URL et assurez-vous que votre application Django est correctement configurée avec les URL.
Réponses non valides : vérifiez que vos points de terminaison et sérialiseurs d'API sont correctement configurés.
En suivant ces étapes, vous devriez pouvoir exécuter avec succès votre serveur de développement Django, tester le point de terminaison d'enregistrement et vérifier l'authentification basée sur un jeton.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal