Comment utiliser AWS Cognito avec Django
AWS Cognito est un puissant service qui peut être intégré avec Django pour assurer une gestion sécurisée et efficace des utilisateurs. Dans ce guide, nous vous expliquerons les étapes pour configurer et utiliser AWS Cognito avec Django.
Configurer AWS Cognito
- Accédez à la console de gestion AWS et naviguez vers le service Cognito.
- Créez un nouveau groupe d’utilisateurs et configurez les paramètres nécessaires tels que les attributs utilisateur, la politique de mot de passe et la vérification par e-mail.
- Configurez un client d’application dans le groupe d’utilisateurs, qui sera utilisé pour l’authentification.
- Notez l’identifiant du groupe d’utilisateurs et l’identifiant du client d’application, car nous en aurons besoin dans la configuration Django.
Installer et configurer Django Cognito
- Installez le package
django-cognitoavec pip :
pip install django-cognito-
Ajoutez
'django_cognito'à la listeINSTALLED_APPSdans le fichier de paramètres de votre projet Django. -
Configurez les paramètres AWS Cognito dans le fichier de paramètres :
COGNITO_USER_POOL_ID = 'your-user-pool-id'COGNITO_APP_CLIENT_ID = 'your-app-client-id'COGNITO_AWS_REGION = 'your-aws-region'Implémenter l’authentification
- Créez une vue Django pour l’authentification des utilisateurs. Cette vue gérera les fonctionnalités de connexion et de déconnexion avec AWS Cognito. Voici un exemple :
from django.contrib.auth import authenticate, login, logoutfrom django.shortcuts import redirect, render
def login_view(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password')
user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect('dashboard') # Redirect to the dashboard page else: error_message = "Invalid username or password" else: error_message = ""
return render(request, 'login.html', {'error_message': error_message})- Créez un template de connexion (
login.html) incluant un formulaire pour la saisie du nom d’utilisateur et du mot de passe. Affichez la variableerror_messageen cas d’échec de l’authentification.
Sécuriser vos vues
- Utilisez le décorateur
@login_requiredsur les vues qui nécessitent une authentification. Cela garantit que seuls les utilisateurs connectés peuvent accéder à ces vues.
from django.contrib.auth.decorators import login_required
@login_requireddef dashboard_view(request): # Your code here return render(request, 'dashboard.html')- Vous pouvez également utiliser le décorateur
@permission_requiredpour restreindre l’accès en fonction des permissions des utilisateurs.
Fonctionnalités supplémentaires
AWS Cognito offre des fonctionnalités supplémentaires comme l’inscription des utilisateurs, la réinitialisation du mot de passe et la vérification par e-mail. Vous pouvez implémenter ces fonctionnalités en utilisant le package django-cognito et l’API AWS Cognito.
C’est tout ! Vous avez réussi à intégrer AWS Cognito avec Django. Avec cette configuration, vous pouvez assurer une gestion sécurisée des utilisateurs avec un minimum d’effort et de maintenance.
Pour plus d’informations, consultez la documentation AWS Cognito et le package django-cognito sur Pypi.