L’authentification basée sur le token est une méthode couramment utilisée pour sécuriser une API. Dans Django, cela peut être mis en œuvre avec Django REST Framework, qui offre un “TokenAuthentication” prêt à l’emploi. Voici les étapes à suivre pour mettre en œuvre cette méthode d’authentification :
1. Commencez par installer Django REST Framework si ce n’est pas déjà fait.
Vous pouvez le faire en utilisant la commande pip, comme suit :
```
pip install djangorestframework
```
1. Ensuite, ajoutez le “rest\_framework” à vos applications installées (dans le fichier settings.py) :
```
INSTALLED_APPS = (
…
‘rest_framework’,
)
```
1. Django REST Framework offre une authentification basée sur les tokens, vous devez donc ajouter ‘rest\_framework.authtoken’ à vos applications installées :
\`\`\`
INSTALLED\_APPS = (
…
‘rest\_framework’,
‘rest\_framework.authtoken’,
)
```
4. Dans votre modèle utilisateur (généralement ‘models.py’), importez le modèle Token de rest_framework.authtoken.models. Ensuite, utilisez la méthode “post_save” de Django pour générer un token chaque fois qu’un nouvel utilisateur est créé. Par exemple :
```
from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token
from django.contrib.auth.models import User
@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
```
5. Enfin, dans la vue que vous souhaitez authentifier, vous devez spécifier que vous utilisez une authentification basée sur les tokens. Par exemple, pour une vue API de Django :
```
from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated
class MyView(APIView): authentication_classes = [TokenAuthentication] permission_classes = [IsAuthenticated]
def get(self, request, format=None): content = { ‘user’: str(request.user), ‘auth’: str(request.auth), } ```Voici une ressource utile qui explique en détail l’authentification basée sur les tokens dans Django REST Framework :
- [Documentation officielle de Django REST Framework](https://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication)
Sachez tout de même que cette méthode d’authentification n’est pas toujours la meilleure solution. Pour une sécurité accrue, vous pouvez envisager d’autres méthodes, telles que JWT (JSON Web Tokens) ou l’authentification OAuth2.