2016-02-16 3 views
0

Mon API est actuellement protégée par le OAuth2TokenAuthentication de django-oauth-boîte à outils, afin de pouvoir valider les demandes de l'API qui contient un jeton d'accès à des manières suivantes:Django Rest Framework API Comment extraire access_token d'une requête?

  1. comme requête param ?access_token=xxxx
  2. en-tête Authorization: Bearer xxxx

alors que je peux coder en dur dans ma vue API pour essayer d'obtenir le jeton d'accès à partir de ces 2 emplacements, existe-t-il un moyen canonique d'obtenir le jeton?

Répondre

0

Je fouilla dans le code à l'intérieur OAuth2TokenAuthentication et empruntèrent dans mon API Voir:

class IntrospectView(APIView): 
    """ 
    An API view that introspect a given token 
    """ 
    serializer_class = TokenIntrospectSerializer 
    authentication_classes = [] 
    permission_classes = [] 

    def get(self, request, *args, **kwargs): 
     oauthlib_core = get_oauthlib_core() 
     valid, r = oauthlib_core.verify_request(request, scopes=[]) 
     if not valid: 
      raise APIException('Invalid token') 
     return Response(TokenIntrospectSerializer(r.access_token).data)