2017-10-20 43 views
1

Comment pouvez-vous faire en sorte que JWT ne vérifie pas et n'exige pas de jeton lorsque l'utilisateur fait une demande OPTIONS?DRF JWT Ne nécessite pas de jeton sur OPTIONS-demandes

J'ai défini ma propre méthode options(self, request, *args, **kwargs), mais aussi longtemps que le permission_classes = [isAuthenticated] est activé, l'utilisateur est invité à fournir des informations de connexion ...

L'API que nous utilisons dans React d'interagir avec DRF doit faire une requête OPTION, qui ne contient aucun en-tête. Quand il ne récupère pas un code de 200, il n'effectue pas la demande au serveur ...

Répondre

1

Je pense que le moyen le plus simple est de déclarer custom permissions et de l'utiliser (dans un fichier permissions.py):

from rest_framework import permissions 

class IsAuthenticated(permissions.IsAuthenticated): 

    def has_permission(self, request, view): 
     if request.method == 'OPTIONS': 
      return True 
     return super(IsAuthenticated, self).has_permission(request, view) 

et les paramètres changent la DEFAULT_AUTHENTICATION_CLASSES à cette classe ...

+0

JWT vérifie toujours s'il y a un jeton sur une option de demande .. –

+0

fournir le message d'erreur s'il vous plaît, et je pense que votre façon correcte remplace la méthode 'JSONWebTokenAuthentication' [get_jwt_value] (https://github.com/GetBlimp/django-rest-framework-jwt/blob/master/rest_framewor k_jwt/authentication.py # L81) –

+0

Il n'y a pas de code d'erreur, je viens d'obtenir une réponse 401 avec "detail": "Les informations d'authentification n'ont pas été fournies." de JWT. –